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);
        }
示例#2
0
        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();
        }
示例#3
0
        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;
            }
        }