|
@@ -166,7 +166,7 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
/// </summary>
|
|
|
/// <param name="request"></param>
|
|
|
/// <returns></returns>
|
|
|
- //[Authorize(Roles = "HiTeach")]
|
|
|
+ [Authorize(Roles = "HiTeach")]
|
|
|
[ProducesDefaultResponseType]
|
|
|
[HttpPost("update-lesson-recordLearnRecord")]
|
|
|
public async Task<IActionResult> UpdateLessonRecordLearnRecord(JsonElement request)
|
|
@@ -201,6 +201,7 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
string school = $"{_school}";
|
|
|
string tmdid = _tmdid.GetString();
|
|
|
string lessonId = _lessonId.GetString();
|
|
@@ -221,6 +222,39 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
_azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/IRS.json").Exists() &&
|
|
|
_azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/base.json").Exists())
|
|
|
{
|
|
|
+ // 開啟 base.json
|
|
|
+ BlobDownloadResult baseblobDownload = await _azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/base.json").DownloadContentAsync();
|
|
|
+ ScoreLessonBase lessonBase = baseblobDownload.Content.ToObjectFromJson<ScoreLessonBase>();
|
|
|
+ //取得學校學生名單
|
|
|
+ List<string> stuOpenIdList = new List<string>();
|
|
|
+ List<string> stuIdForSql = new List<string>();
|
|
|
+ if (lessonBase.student.Count > 0)
|
|
|
+ {
|
|
|
+ foreach(LessonStudent stu in lessonBase.student)
|
|
|
+ {
|
|
|
+ if(!string.IsNullOrWhiteSpace(stu.id) && !stuIdForSql.Contains(stu.id))
|
|
|
+ {
|
|
|
+ stuIdForSql.Add(stu.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!string.IsNullOrWhiteSpace(school) && stuIdForSql.Count > 0)
|
|
|
+ {
|
|
|
+ StringBuilder stusql = new StringBuilder($"SELECT * FROM c WHERE c.pk = 'Base' AND ARRAY_CONTAINS({JsonSerializer.Serialize(stuIdForSql)}, c.id)");
|
|
|
+ await foreach (Student item in client.GetContainer(Constant.TEAMModelOS, Constant.Student).GetItemQueryIterator<Student>(queryText: stusql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base-{school}") }))
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrWhiteSpace(item.openId) && !stuOpenIdList.Contains(item.openId))
|
|
|
+ {
|
|
|
+ stuOpenIdList.Add(item.openId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //若無任一OpenID學生則不執行以下程序
|
|
|
+ if (stuOpenIdList.Count.Equals(0))
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 開啟 TimeLine.json
|
|
|
BlobDownloadResult TimeLineblobDownload = await _azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/TimeLine.json").DownloadContentAsync();
|
|
|
TimeLineEvents timeLineEvents = TimeLineblobDownload.Content.ToObjectFromJson<TimeLineEvents>();
|
|
@@ -229,10 +263,6 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
BlobDownloadResult IRSblobDownload = await _azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/IRS.json").DownloadContentAsync();
|
|
|
List<IRSItem> iRSItems = IRSblobDownload.Content.ToObjectFromJson<List<IRSItem>>();
|
|
|
|
|
|
- // 開啟 base.json
|
|
|
- BlobDownloadResult baseblobDownload = await _azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/base.json").DownloadContentAsync();
|
|
|
- ScoreLessonBase lessonBase = baseblobDownload.Content.ToObjectFromJson<ScoreLessonBase>();
|
|
|
-
|
|
|
// 開啟 Task.json
|
|
|
BlobDownloadResult taskblobDownload = await _azureStorage.GetBlobContainerClient(rootName).GetBlobClient($"/records/{lessonId}/IES/Task.json").DownloadContentAsync();
|
|
|
List<TaskItem> taskItems = taskblobDownload.Content.ToObjectFromJson<List<TaskItem>>();
|