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();
        }
Exemple #2
0
 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));
        }