public static string GetMarksSheet() { string request = HttpContext.Current.Request.Params["request"]; MarksInfo[] marksInfo = JsonConvert.DeserializeObject <MarksInfo[]>(request); int totalSubjects = 0; int marksSecured = 0; int minMarks = marksInfo[0].subjectMarksObtianed; string minMarksSubject = marksInfo[0].subjectName; int maxMarks = marksInfo[0].subjectMarksObtianed; string maxMarksSubject = marksInfo[0].subjectName; for (int i = 0; i < marksInfo.Length; i++) { MarksInfo currentInfo = marksInfo[i]; marksSecured += currentInfo.subjectMarksObtianed; totalSubjects += 1; if (currentInfo.subjectMarksObtianed < minMarks) { minMarks = currentInfo.subjectMarksObtianed; minMarksSubject = currentInfo.subjectName; } if (currentInfo.subjectMarksObtianed > maxMarks) { maxMarks = currentInfo.subjectMarksObtianed; maxMarksSubject = currentInfo.subjectName; } } float average = marksSecured / totalSubjects; Result result = new Result(); result.minMarks = minMarks; result.minMarksSubject = minMarksSubject; result.maxMarks = maxMarks; result.maxMarksSubject = maxMarksSubject; result.average = average; string resultStr = JsonConvert.SerializeObject(result); return(resultStr); }
public OrdersProfile() { CreateMap <OrderItemBasetInfo, OrderItemInfo>() .ForMember(dest => dest.GrossValue, opt => opt.Ignore()) .ForMember(dest => dest.BrokerFees, opt => opt.Ignore()) .ForMember(dest => dest.CompanyFees, opt => opt.Ignore()) .ForMember(dest => dest.NetValue, opt => opt.Ignore()) .ReverseMap(); CreateMap <OrderBaseInfo, OrderInfo>() .ForMember(dest => dest.IDOrder, opt => opt.Ignore()) .ForMember(dest => dest.OrderSituation, opt => opt.Ignore()) .ForMember(dest => dest.ClientCounterParty, opt => opt.Ignore()) .ForMember(dest => dest.Marks, opt => opt.MapFrom(s => MarksInfo.NewMarks())) .ForMember(dest => dest.TotalGrossValue, opt => opt.Ignore()) .ForMember(dest => dest.TotalBrokerFees, opt => opt.Ignore()) .ForMember(dest => dest.TotalCompanyFees, opt => opt.Ignore()) .ForMember(dest => dest.TotalNetValue, opt => opt.Ignore()) .ReverseMap(); }
private void LoadButton_Click(object sender, RoutedEventArgs e) { if ((group == null && allGroupsCb.IsChecked == false) || info == null) { return; } IList list; switch (info) { case InfoType.Skips: int countSkips; Int32.TryParse(skipsTb.Text, out countSkips); List <SkipsInfo> skips = new List <SkipsInfo>(); if (allGroupsCb.IsChecked == true) { list = Data.Context.Skips.Include(s => s.Student).Where(s => s.Date >= from.Date && s.Date <= to.Date).ToList(); } else { list = Data.Context.Skips.Include(s => s.Student.Group.Faculty).Where(s => s.Student.Group.Id == group.Id && s.Date >= from.Date && s.Date <= to.Date).ToList(); } foreach (var item in list as IList <Skip> ) { int index = -1; for (int i = 0; i < skips.Count; i++) { if (skips[i].Student.Id == item.Student.Id) { index = i; break; } } if (index == -1) { skips.Add(new SkipsInfo { Student = item.Student, CountSkips = SkipsInfo.GetDaySkips(item) }); } else { skips[index].CountSkips += SkipsInfo.GetDaySkips(item); } } skips = skips.Where(s => s.CountSkips >= countSkips).ToList(); dataGrid.ItemsSource = from s in skips select new { Студент = s.Student.ToString(), Прогулы = s.CountSkips }; break; case InfoType.NonAchievers: case InfoType.Progress: List <MarksInfo> marks = new List <MarksInfo>(); if (allGroupsCb.IsChecked == true) { list = Data.Context.Marks.Include(s => s.Student).Where(s => s.Date >= from.Date && s.Date <= to.Date).ToList(); } else { list = Data.Context.Marks.Include(s => s.Student.Group.Faculty).Where(s => s.Student.Group.Id == group.Id && s.Date >= from.Date && s.Date <= to.Date).ToList(); } foreach (var item in list as List <Mark> ) { int index = -1; int value = (int)item.Value; for (int i = 0; i < marks.Count; i++) { if (marks[i].Student.Id == item.Student.Id) { index = i; break; } } if (index == -1) { var mark = new MarksInfo { Student = item.Student }; mark.Marks.Add(value); marks.Add(mark); } else { marks[index].Marks.Add(value); } } if (info == InfoType.Progress) { dataGrid.ItemsSource = from s in marks select new { Студент = s.Student.ToString(), Балл = Math.Round((double)s.Marks.Sum() / s.Marks.Count, 2) }; } else { dataGrid.ItemsSource = (from s in marks select new { Студент = s.Student.ToString(), Балл = Math.Round((double)s.Marks.Sum() / s.Marks.Count, 2) }).Where(n => n.Балл < 3).ToList(); } break; } }