|
@@ -2537,27 +2537,40 @@ namespace TEAMModelOS.Controllers.Client
|
|
|
var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseTask>(sql, $"CourseTask-{school_code}");
|
|
|
if (resultSchool.list.IsNotEmpty())
|
|
|
{
|
|
|
- resultSchool.list.ForEach(x =>
|
|
|
+ resultSchool.list.ForEach(async x =>
|
|
|
{
|
|
|
- var schedulesTeacher = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.teacherId) && z.teacherId.Equals(id));
|
|
|
- if (schedulesTeacher.Any())
|
|
|
+ try
|
|
|
{
|
|
|
- courseIds.Add(x.courseId);
|
|
|
- CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
|
|
|
- courseTask.schedules = schedulesTeacher.ToList();
|
|
|
- schoolTeacherTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
|
|
|
- groupIds.AddRange(schedulesTeacher.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("teach")).Select(x => x.groupId));
|
|
|
- classIds.AddRange(schedulesTeacher.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("class")).Select(x => x.groupId));
|
|
|
+ //取得課程資訊
|
|
|
+ string courseId = x.courseId;
|
|
|
+ CourseBase courseInfo = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<CourseBase>(courseId, new PartitionKey($"CourseBase-{school_code}"));
|
|
|
+ //上課列表製作
|
|
|
+ if (courseInfo.period.id.Equals(periodId)) //學制相同才續行
|
|
|
+ {
|
|
|
+ var schedulesTeacher = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.teacherId) && z.teacherId.Equals(id));
|
|
|
+ if (schedulesTeacher.Any())
|
|
|
+ {
|
|
|
+ courseIds.Add(x.courseId);
|
|
|
+ CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
|
|
|
+ courseTask.schedules = schedulesTeacher.ToList();
|
|
|
+ schoolTeacherTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
|
|
|
+ groupIds.AddRange(schedulesTeacher.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("teach")).Select(x => x.groupId));
|
|
|
+ classIds.AddRange(schedulesTeacher.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("class")).Select(x => x.groupId));
|
|
|
+ }
|
|
|
+ var schedulesAssistant = x.schedules.Where(z => z.assistants.Contains(id));
|
|
|
+ if (schedulesAssistant.Any())
|
|
|
+ {
|
|
|
+ courseIds.Add(x.courseId);
|
|
|
+ CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
|
|
|
+ courseTask.schedules = schedulesAssistant.ToList();
|
|
|
+ schoolAssistantTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
|
|
|
+ groupIds.AddRange(schedulesAssistant.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("teach")).Select(x => x.groupId));
|
|
|
+ classIds.AddRange(schedulesAssistant.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("class")).Select(x => x.groupId));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- var schedulesAssistant = x.schedules.Where(z => z.assistants.Contains(id));
|
|
|
- if (schedulesAssistant.Any())
|
|
|
+ catch (Exception ex)
|
|
|
{
|
|
|
- courseIds.Add(x.courseId);
|
|
|
- CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
|
|
|
- courseTask.schedules = schedulesAssistant.ToList();
|
|
|
- schoolAssistantTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
|
|
|
- groupIds.AddRange(schedulesAssistant.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("teach")).Select(x => x.groupId));
|
|
|
- classIds.AddRange(schedulesAssistant.Where(z => !string.IsNullOrWhiteSpace(z.groupId) && z.type.Equals("class")).Select(x => x.groupId));
|
|
|
}
|
|
|
});
|
|
|
}
|