Пример #1
0
        // GET: Report
        public ActionResult Index()
        {
            var academicinfo   = new List <AcademicInformation>();
            var academicinfoVM = new AcademicInformationViewModel();
            var obj            = new AHPViewModel();

            using (_context = new EntityContext())
            {
                academicinfo = _context.AcademicInformations.ToList();
                obj          = _service.CalculateAHP(_context.ListCriteria.ToList());


                while (obj.ConsistencyRatio > 0.10)
                {
                    obj = _service.CalculateAHP(obj.listRow);
                }

                //
                foreach (var item in academicinfo)
                {
                    academicinfoVM.listNationalExam.Add(new RowViewModel {
                        Name = item.CandidateStudent.Name, Weight = _service.GetNationalExamPoint(item.AverageofNationalExam)
                    });
                }

                var listNationalExam = _service.CalculateAHP(academicinfoVM.listNationalExam);
                while (listNationalExam.ConsistencyRatio > 0.10)
                {
                    listNationalExam = _service.CalculateAHP(listNationalExam.listRow);
                }
                academicinfoVM.listNationalExam = listNationalExam.listRow;
                //
                foreach (var item in academicinfo)
                {
                    academicinfoVM.listReportCard.Add(new RowViewModel {
                        Name = item.CandidateStudent.Name, Weight = _service.GetReportCardPoint(item.AverageofReportCard)
                    });
                }

                var listReportCard = _service.CalculateAHP(academicinfoVM.listReportCard);
                while (listReportCard.ConsistencyRatio > 0.10)
                {
                    listReportCard = _service.CalculateAHP(listReportCard.listRow);
                }
                academicinfoVM.listReportCard = listReportCard.listRow;
                //
                foreach (var item in academicinfo)
                {
                    academicinfoVM.listNonAcademic.Add(new RowViewModel {
                        Name = item.CandidateStudent.Name, Weight = _service.GetNonAcademicPoint(item.NonAcademicInformation.FirstOrDefault())
                    });
                }

                var listNonAcademic = _service.CalculateAHP(academicinfoVM.listNonAcademic);
                while (listNonAcademic.ConsistencyRatio > 0.10)
                {
                    listNonAcademic = _service.CalculateAHP(listNonAcademic.listRow);
                }
                academicinfoVM.listNonAcademic = listNonAcademic.listRow;

                var compositeWeight = new List <RowViewModel>();
                for (int i = 0; i < academicinfo.Count; i++)
                {
                    compositeWeight.Add(new RowViewModel {
                        Name  = academicinfo[i].CandidateStudent.Name,
                        Total = ((academicinfoVM.listNationalExam[i].Average * obj.listRow[0].Average) + (academicinfoVM.listReportCard[i].Average * obj.listRow[1].Average) + (academicinfoVM.listNonAcademic[i].Average * obj.listRow[2].Average))
                    });
                }

                return(View(compositeWeight.OrderByDescending(o => o.Total).ToList()));
            }
        }