コード例 #1
0
ファイル: SaveFile.cs プロジェクト: MightyFrenkel/JsonParser
        public static void SaveSchoolDataToUsersLocation(SchoolData schoolData)
        {
            var path = StandaloneFileBrowser.SaveFilePanel("Save File", "", "", "txt");

            IStructureModifier modifiedStructure = new ClassOverview();

            File.WriteAllText(path, modifiedStructure.GenerateData(schoolData));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }