// 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())); } }