Jelajahi Sumber

最新数据结构和内容

zhouj1203@hotmail.com 5 tahun lalu
induk
melakukan
2aeb240869

+ 14 - 0
TEAMModelOS.Model/Evaluation/Models/CosmosModels/AnswerDetail.cs

@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace TEAMModelOS.Model.Evaluation.Models.CosmosModels
+{
+    public class AnswerDetail
+    {
+        public string Index { get; set; }
+        public float Point { get; set; }
+        public string Detail { get; set; }
+
+    }
+}

+ 27 - 0
TEAMModelOS.Model/Evaluation/Models/CosmosModels/Answers.cs

@@ -0,0 +1,27 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using TEAMModelOS.SDK.Context.Attributes.Azure;
+
+namespace TEAMModelOS.Model.Evaluation.Models.CosmosModels
+{
+    public class Answers
+    {
+
+        public Answers() {
+            Detail = new List<AnswerDetail>();
+        }
+        [JsonProperty(PropertyName = "id")]
+        public string Id { get; set; }
+        [PartitionKey]
+        public string ExNO { get; set; }
+        public string StudentId { get; set; }
+        public string CourseCode { get; set; }
+        public string ClassCode { get; set; }
+        public string GradeCode { get; set; }
+        public string SchoolCode { get; set; }
+        public List<AnswerDetail> Detail { get; set; }
+
+    }
+}

+ 21 - 0
TEAMModelOS.Model/Evaluation/Models/CosmosModels/Exams.cs

@@ -0,0 +1,21 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using TEAMModelOS.SDK.Context.Attributes.Azure;
+
+namespace TEAMModelOS.Model.Evaluation.Models.CosmosModels
+{
+    public class Exams
+    {
+        [JsonProperty(PropertyName = "id")]
+        public string Id { get; set; }
+        [PartitionKey]
+        public string ExNO { get; set; }
+        public string ExName { get; set; }
+        public string ExTime { get; set; }
+        public int AcademicYear { get; set; }
+        public int SOrder { get; set; }
+        public string Sub { get; set; }
+    }
+}

+ 12 - 0
TEAMModelOS.Model/Evaluation/Models/CosmosModels/Subjects.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace TEAMModelOS.Model.Evaluation.Models.CosmosModels
+{
+    public class Subjects
+    {
+        public string Code { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 66 - 1
TEAMModelOS.Service/Evaluation/Implements/ExamInfoService.cs

@@ -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;
+        }
+        
     }
     }
+
 }
 }

+ 1 - 0
TEAMModelOS.Service/Evaluation/Interfaces/IExamInfoService.cs

@@ -17,5 +17,6 @@ namespace TEAMModelOS.Service.EvaluaTion.Interfaces
         Task<List<MemberAnswer>> SaveToCosmosAnswer(List<MemberAnswer> items);
         Task<List<MemberAnswer>> SaveToCosmosAnswer(List<MemberAnswer> items);
 
 
         Task<List<ExerciseInfo>> SaveToCosmosExamAsync(List<ExerciseInfo> items, List<MemberAnswer> answers);
         Task<List<ExerciseInfo>> SaveToCosmosExamAsync(List<ExerciseInfo> items, List<MemberAnswer> answers);
+        Task<List<ExerciseInfo>> SaveToCosmosExam(List<ExerciseInfo> items, List<MemberAnswer> answers);
     }
     }
 }
 }

+ 1 - 1
TEAMModelOS/Controllers/Analysis/ChangeController.cs

@@ -44,7 +44,7 @@ namespace TEAMModelOS.Controllers.Analysis
             List<ExerciseInfo> obj = MessagePackHelper.JsonToObject<List<ExerciseInfo>>(data);
             List<ExerciseInfo> obj = MessagePackHelper.JsonToObject<List<ExerciseInfo>>(data);
             List<MemberAnswer> obj_1 = MessagePackHelper.JsonToObject<List<MemberAnswer>>(data_1);
             List<MemberAnswer> obj_1 = MessagePackHelper.JsonToObject<List<MemberAnswer>>(data_1);
             // _examInfoService.SaveOrUpdateAsync(obj,"cn");
             // _examInfoService.SaveOrUpdateAsync(obj,"cn");
-            _examInfoService.SaveToCosmosExamAsync(obj, obj_1);
+            _examInfoService.SaveToCosmosExam(obj, obj_1);
             return builder.Data(obj).build();
             return builder.Data(obj).build();
             //return builder.build();
             //return builder.build();
         }
         }