public static void SaveSchoolDataToUsersLocation(SchoolData schoolData) { var path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "txt"); IStructureModifier modifiedStructure = new ClassOverview(); File.WriteAllText(path, modifiedStructure.GenerateData(schoolData)); }
public ActionResult <ClassOverview> GetClassOverview(string ClassId) { var overview = new ClassOverview(); var studentlist = Dataset.StudentList.Where(x => x.ClassId == ClassId).ToList(); overview.Property = new StudentGroupProperty(studentlist); //教师记录 overview.Teachers = Dataset.TeacherList.Where(x => x.ClassId == ClassId).ToList(); var All = Dataset.ChengjiList.Where(x => x.ClassID == ClassId).ToList(); overview.className = studentlist.First().ClassName; var dic = new Dictionary <string, List <Chengji> >(); foreach (var chengjiRec in All) { var key = chengjiRec.Number + ":" + chengjiRec.SubId; if (!dic.ContainsKey(key)) { dic.Add(key, new List <Chengji>()); } dic[key].Add(chengjiRec); } var r = new List <ClassExamInfo>(); foreach (var key in dic.Keys) { var chengjis = dic[key]; r.Add(new ClassExamInfo(chengjis)); } overview.Exams = r; //班级考勤信息 overview.Kaoqing = new List <NameValueSet>(); foreach (var key in Dataset.KaoqinTypeDic2018.Keys) { var cnt = Dataset.KaoqinList.Count(x => x.ClassId == ClassId && x.DetailId == key); if (cnt > 0) { overview.Kaoqing.Add(new NameValueSet() { name = Dataset.KaoqinTypeDic2018[key].control_task_name, value = cnt }); } } var ClassConsumption = Dataset.ConsumptionList.Where(x => x.ClassId == ClassId); overview.ConsumptionStatisticsList = ClassConsumption.GroupBy(x => x.DealYearMonthDay).Select(x => { //按照学生GroupBy,获得每个学生的当日总消费数组 var StudentGroup = x.GroupBy(z => z.StudentID).Select(m => m.Sum(n => - n.MonDeal)); return(new statistics() { name = x.Key, max = StudentGroup.Max(), min = StudentGroup.Min(), avg = StudentGroup.Average(), sum = StudentGroup.Sum(), cnt = StudentGroup.Count() }); } ).ToList(); overview.ConsumptionStatisticsList.Sort((x, y) => { return(x.name.CompareTo(y.name)); }); var ClassKaoqin = Dataset.KaoqinList.Where(x => x.ClassId == ClassId && x.ControllerID.StartsWith("9")); overview.KaoqingStatisticsList = ClassKaoqin.GroupBy(x => x.RecDateTimeYearMonthDay).Select(x => { var KaoqinGroup = x.GroupBy(z => z.DetailId); var Controllerlist = KaoqinGroup.Select(n => { return(new NameValueSet() { name = Dataset.KaoqinTypeDic[n.Key].control_task_name, value = n.Count() }); }); return(new statisticsKaoqin() { name = x.Key, value = Controllerlist.ToList() }); }).ToList(); //高三七选三 if (overview.className.Contains("高三")) { //五校联考 overview.CourseSelect = CourseController.GetPickCourseOverview(studentlist, "6").selectionCourseCnt; } return(overview); }
public ActionResult <ClassOverview> VisualDateForFilter(dynamic data) { ActionResult <List <Student> > StudentList = QueryByFilter(data); var StudentIds = StudentList.Value.Select(x => x.ID); var rtn = new ClassOverview(); rtn.Property = new StudentGroupProperty(StudentList.Value); rtn.Kaoqing = new List <NameValueSet>(); //只使用2018年的数据 foreach (var key in Dataset.KaoqinTypeDic2018.Keys) { var cnt = 0; foreach (var sId in StudentIds) { cnt += Dataset.KaoqinStudentIdDetail[sId + key]; } if (cnt > 0) { rtn.Kaoqing.Add(new NameValueSet() { name = Dataset.KaoqinTypeDic[key].control_task_name, value = cnt }); } } var timer = new System.Diagnostics.Stopwatch(); timer.Start(); var MonthlyConsumption = new List <NameValueSet>(); var MonthTitle = new string[] { "201807", "201808", "201809", "201810", "201811", "201812", "201901" }; var WeeklyConsumption = new List <NameValueSet>(); var WeekDayNames = new String[] { "周一", "周二", "周三", "周四", "周五", "周六", "周日" }; foreach (var mon in MonthTitle) { float sum = 0; foreach (var ids in StudentIds) { sum += Dataset.ConsumptionDict[ids + mon].Amount; } MonthlyConsumption.Add(new NameValueSet() { name = mon, value = (Int32)sum }); } foreach (var weekname in WeekDayNames) { float sum = 0; foreach (var ids in StudentIds) { sum += Dataset.ConsumptionDict[ids + weekname].Amount; } WeeklyConsumption.Add(new NameValueSet() { name = weekname, value = (Int32)sum }); } rtn.MonthlyConsumption = MonthlyConsumption; rtn.WeeklyConsumption = WeeklyConsumption; Console.WriteLine(timer.Elapsed.ToString()); timer.Stop(); return(rtn); }