|
@@ -316,6 +316,7 @@ namespace TEAMModelOS.SDK
|
|
|
}
|
|
|
if (activity != null)
|
|
|
{
|
|
|
+ List<Task<ItemResponse<StuActivity>>> tasks = new List<Task<ItemResponse<StuActivity>>>();
|
|
|
List<string> classes = ExamService.getClasses(activity.classes, activity.stuLists);
|
|
|
(List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, activity.school);
|
|
|
var students = tmdIds.FindAll(x => x.type == 2);
|
|
@@ -324,58 +325,57 @@ namespace TEAMModelOS.SDK
|
|
|
{
|
|
|
foreach (RMember tmdid in tmdids)
|
|
|
{
|
|
|
- var stucourse = new StuActivity
|
|
|
- {
|
|
|
- id = activity.id,
|
|
|
- scode = activity.code,
|
|
|
- name = activity.name,
|
|
|
- code = $"Activity-{tmdid.id}",
|
|
|
- source = activity.source,
|
|
|
- scope = activity.scope,
|
|
|
- school = activity.school,
|
|
|
- creatorId = activity.creatorId,
|
|
|
- pk = "Activity",
|
|
|
- type = activity.pk,
|
|
|
- subjects = activity.pk.ToLower().Equals("exam") && activity.subjects.IsNotEmpty() ? new List<string>() { activity.subjects[0].id } : new List<string>() { "" },
|
|
|
- startTime = activity.startTime,
|
|
|
- endTime = activity.endTime,
|
|
|
- blob = activity.blob,
|
|
|
- owner = activity.owner,
|
|
|
- createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
|
|
|
- taskStatus = -1,
|
|
|
- classIds = classes
|
|
|
- };
|
|
|
- await client.GetContainer(Constant.TEAMModelOS, "Student").UpsertItemAsync(stucourse, new PartitionKey(stucourse.code));
|
|
|
+ var response = await client.GetContainer(Constant.TEAMModelOS, "Student").ReadItemStreamAsync(activity.id, new PartitionKey($"Activity-{tmdid.id}"));
|
|
|
+ if (response.Status == 200) {
|
|
|
+ using var json = await JsonDocument.ParseAsync(response.ContentStream);
|
|
|
+ StuActivity stu = json.ToObject<StuActivity>();
|
|
|
+ stu.id = activity.id;
|
|
|
+ stu.scode = activity.code;
|
|
|
+ stu.name = activity.name;
|
|
|
+ stu.source = activity.source;
|
|
|
+ stu.scope = activity.scope;
|
|
|
+ stu.school = activity.school;
|
|
|
+ stu.creatorId = activity.creatorId;
|
|
|
+ stu.type = activity.pk;
|
|
|
+ stu.subjects = activity.pk.ToLower().Equals("exam") && activity.subjects.IsNotEmpty() ? new List<string>() { activity.subjects[0].id } : new List<string>() { "" };
|
|
|
+ stu.startTime = activity.startTime;
|
|
|
+ stu.endTime = activity.endTime;
|
|
|
+ stu.blob = activity.blob;
|
|
|
+ stu.owner = activity.owner;
|
|
|
+ stu.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ tasks.Add(client.GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync(stu,stu.id, new PartitionKey(stu.code)));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (students.IsNotEmpty())
|
|
|
{
|
|
|
foreach (RMember student in students)
|
|
|
{
|
|
|
- var stucourse = new StuActivity
|
|
|
+ var response = await client.GetContainer(Constant.TEAMModelOS, "Student").ReadItemStreamAsync(activity.id, new PartitionKey($"Activity-{activity.school}-{student.id}"));
|
|
|
+ if (response.Status == 200)
|
|
|
{
|
|
|
- id = activity.id,
|
|
|
- scode = activity.code,
|
|
|
- name = activity.name,
|
|
|
- code = $"Activity-{activity.school}-{student.id}",
|
|
|
- scope = activity.scope,
|
|
|
- source = activity.source,
|
|
|
- school = activity.school,
|
|
|
- creatorId = activity.creatorId,
|
|
|
- pk = "Activity",
|
|
|
- type = activity.pk,
|
|
|
- subjects = activity.pk.ToLower().Equals("exam") && activity.subjects.IsNotEmpty() ? new List<string>() { activity.subjects[0].id } : new List<string>() { "" },
|
|
|
- startTime = activity.startTime,
|
|
|
- endTime = activity.endTime,
|
|
|
- blob = activity.blob,
|
|
|
- owner = activity.owner,
|
|
|
- createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
|
|
|
- taskStatus = -1,
|
|
|
- classIds = classes
|
|
|
- };
|
|
|
- await client.GetContainer(Constant.TEAMModelOS, "Student").UpsertItemAsync(stucourse, new PartitionKey(stucourse.code));
|
|
|
+ using var json = await JsonDocument.ParseAsync(response.ContentStream);
|
|
|
+ StuActivity stu = json.ToObject<StuActivity>();
|
|
|
+ stu.id = activity.id;
|
|
|
+ stu.scode = activity.code;
|
|
|
+ stu.name = activity.name;
|
|
|
+ stu.source = activity.source;
|
|
|
+ stu.scope = activity.scope;
|
|
|
+ stu.school = activity.school;
|
|
|
+ stu.creatorId = activity.creatorId;
|
|
|
+ stu.type = activity.pk;
|
|
|
+ stu.subjects = activity.pk.ToLower().Equals("exam") && activity.subjects.IsNotEmpty() ? new List<string>() { activity.subjects[0].id } : new List<string>() { "" };
|
|
|
+ stu.startTime = activity.startTime;
|
|
|
+ stu.endTime = activity.endTime;
|
|
|
+ stu.blob = activity.blob;
|
|
|
+ stu.owner = activity.owner;
|
|
|
+ stu.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ tasks.Add(client.GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync(stu, stu.id, new PartitionKey(stu.code)));
|
|
|
+ }
|
|
|
+ //await client.GetContainer(Constant.TEAMModelOS, "Student").UpsertItemAsync(stucourse, new PartitionKey(stucourse.code));
|
|
|
}
|
|
|
}
|
|
|
+ await Task.WhenAll(tasks);
|
|
|
}
|
|
|
}
|
|
|
}
|