|
@@ -180,6 +180,71 @@ namespace TEAMModelOS.Service.EvaluaTion.Implements
|
|
|
|
|
|
return exercises;
|
|
return exercises;
|
|
}
|
|
}
|
|
- //throw new NotImplementedException();
|
|
|
|
|
|
+ public async Task<List<ExerciseInfo>> SaveToCosmosExam(List<ExerciseInfo> exercises, List<MemberAnswer> members)
|
|
|
|
+ {
|
|
|
|
+ List<Exams> exams = new List<Exams>();
|
|
|
|
+ List<AnswerDetail> answerDetail = new List<AnswerDetail>();
|
|
|
|
+ List<Answers> answers = new List<Answers>();
|
|
|
|
+ List<Exams> objs = new List<Exams>();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ foreach (IGrouping<string, MemberAnswer> group in members.GroupBy(c => c.ExNO +"---"+ c.StudentId)) {
|
|
|
|
+ string[] keys = group.Key.Split("---");
|
|
|
|
+
|
|
|
|
+ var list= group.ToList();
|
|
|
|
+ Answers answer = new Answers
|
|
|
|
+ {
|
|
|
|
+ Id = Guid.NewGuid().ToString(),
|
|
|
|
+ ExNO = keys[0],
|
|
|
|
+ StudentId = keys[1]
|
|
|
|
+ };
|
|
|
|
+ foreach (var ls in list) {
|
|
|
|
+ answer.Detail.Add(new AnswerDetail {
|
|
|
|
+ Index = ls.Itemindex,
|
|
|
|
+ Point = float.Parse(ls.Point),
|
|
|
|
+ Detail = ls.Selection
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ answers.Add(answer);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //List<CouseExam> couseObjs = new List<CouseExam>();
|
|
|
|
+ if (null != exercises) {
|
|
|
|
+
|
|
|
|
+ exercises.ForEach(e =>
|
|
|
|
+ {
|
|
|
|
+ exams.Add(new Exams() {
|
|
|
|
+ Id = Guid.NewGuid().ToString(),
|
|
|
|
+ ExNO = e.Ex_name.Replace(" ", "").Split("_")[1],
|
|
|
|
+ ExName = e.Ex_name.Replace(" ", "").Split("-")[0] + "-" + e.Ex_name.Replace(" ", "").Split("-")[1],
|
|
|
|
+ ExTime = e.Ex_time,
|
|
|
|
+ AcademicYear = int.Parse(e.AcademicYear),
|
|
|
|
+ SOrder = int.Parse(e.SOrder),
|
|
|
|
+ Sub = e.Course_name
|
|
|
|
+ });
|
|
|
|
+ answers.ForEach(a =>
|
|
|
|
+ {
|
|
|
|
+ if (a.ExNO.Equals(e.ExNO))
|
|
|
|
+ {
|
|
|
|
+ a.ExNO = e.Ex_name.Replace(" ", "").Split("_")[1];
|
|
|
|
+ a.GradeCode = e.GradeName;
|
|
|
|
+ a.SchoolCode = e.SchoolName;
|
|
|
|
+ a.ClassCode = e.Class_code;
|
|
|
|
+ a.CourseCode = e.Course_name;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ objs = exams.Where((x, i) => exams.FindIndex(z => z.ExName == x.ExName && z.Sub
|
|
|
|
+ == x.Sub) == i).ToList();
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ await _cosmosrepository.SaveAll(objs);
|
|
|
|
+ await _cosmosrepository.SaveAll(answers);
|
|
|
|
+ return exercises;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|