public async Task GenarateResult(GenarateResultVM genarateResult) { List <GenarateResultVM> genarateResults = new List <GenarateResultVM>(); List <int> candidatsIds = await _context.SubjectWiseResults.Include("Candidate").Where(x => x.ExamId == genarateResult.ExamId && x.Candidate.StanderdClassId == genarateResult.StandardId).Select(x => x.CandidateId).Distinct().ToListAsync(); List <CandateWiseResult> candateWiseResults = new List <CandateWiseResult>(); foreach (var id in candidatsIds) { var items = _context.SubjectWiseResults.Where(x => x.CandidateId == id && x.ExamId == genarateResult.ExamId); CandateWiseResult cwr = new CandateWiseResult { CandidateId = id, ExamId = genarateResult.ExamId, IsPass = true, ObtainMarks = 0 }; foreach (var item in items) { cwr.ObtainMarks += item.ObtainMarks; if (cwr.IsPass) { cwr.IsPass = item.IsPass; } else { cwr.IsPass = false; } } candateWiseResults.Add(cwr); } candateWiseResults = candateWiseResults.OrderByDescending(x => x.ObtainMarks).ToList(); List <CandateWiseResult> candidatesToPost = new List <CandateWiseResult>(); candidatesToPost = candateWiseResults.Take(genarateResult.SelectedCandidateNo).ToList(); foreach (var item in candidatesToPost) { SelectedCandidate s = new SelectedCandidate { ExamId = genarateResult.ExamId, CandidateId = item.CandidateId, IsAdmitted = false, IsInWatingList = false }; _context.SelectedCandidates.Add(s); } _context.SaveChanges(); candidatesToPost.Clear(); candidatesToPost = candateWiseResults.Skip(genarateResult.SelectedCandidateNo).Take(genarateResult.WaitingListNo).ToList(); foreach (var item in candidatesToPost) { SelectedCandidate s = new SelectedCandidate { ExamId = genarateResult.ExamId, CandidateId = item.CandidateId, IsAdmitted = false, IsInWatingList = true }; _context.SelectedCandidates.Add(s); } _context.SaveChanges(); }
public bool ExecuteFileDelivery(AddmissionContext _context) { try { var delivery = _context.DeliverFiles; foreach (var deliverFile in delivery) { _context.Remove(deliverFile); } _context.SaveChanges();//清空投档表 var applications = _context.Applications .Include(s => s.UnacceptedStudent) .GroupBy(s => s.UnacceptedStudent) .OrderByDescending(s => s.Key.TotalGrade); var colleges = _context.Universities.ToList(); int[] remaning = new int[colleges.Count]; for (int i = 0; i < remaning.Length; i++)//初始化各高校剩余名额 { remaning[i] = (int)(colleges[i].ExpandRate * colleges[i].Enrollment); } foreach (var application in applications) //对每个考生 { var tempStudentApplication = application.GroupBy(s => s.Uname).ToList(); //该生志愿按学校组织 foreach (var tempMajorApplication in tempStudentApplication) //该生每个学校的相应志愿,tempMajorApplication为当前学校下的志愿集 { int index = colleges.IndexOf(colleges.Find(u => u.Uname == tempMajorApplication.Key)); if (remaning[index] > 0) //若该校还能投档 { var majors = tempMajorApplication.OrderBy(m => m.No).ToList(); //获取该生填报的具体到专业志愿 foreach (var major in majors) //对每个志愿都插入到投档表中 { var file = new DeliverFile { Sid = major.Sid, Uname = major.Uname, Mid = major.Mid }; _context.Add(file); } remaning[index]--; //能投入该校的考生减1 break; //该生投档完成并结束循环 } } } foreach (var a in _context.Applications)//清空申请表 { _context.Remove(a); } _context.SaveChanges(); return(true); } catch (Exception ex) { return(false); } }
public JsonResult ApprovalPost([FromBody] string[] colleges) { var response = new Response { Code = 1, Data = null }; try { foreach (var i in colleges) { var college = _context.Universities.SingleOrDefault(u => u.Uname == i); college.Aname = HttpContext.Session.GetString("UserName"); college.ApprovalStatus = true; _context.Universities.Update(college); } _context.SaveChanges(); response.Code = 0; } catch (Exception ex) { _logger.LogInformation(ex, "Failed to update universities' approval status"); } return(Json(response)); }