public ActionResult CompanyTrainingMajors_Destroy([DataSourceRequest] DataSourceRequest request, CompanyTrainingMajor companyTrainingMajor) { if (ModelState.IsValid) { _companyTrainingMajorService.Delete(companyTrainingMajor); } return(Json(new[] { companyTrainingMajor }.ToDataSourceResult(request, ModelState))); }
public void AssignInternship() { var lateRegisteredInternships = new List <Internship>(); List <CompanyTrainingMajor> leftMajors = UnitOfWork.Repository <CompanyTrainingMajor>().TableNoTracking.ToList(); foreach (Internship item in GetByLatestSemester().OrderByDescending(i => i.RegistrationDate).ToList()) { if (item.Major.AvailableTraineeCount > 0) { item.Status = InternshipStatus.Success; item.Major.AvailableTraineeCount--; UnitOfWork.Repository <Internship>().Update(item); } else { lateRegisteredInternships.Add(item); leftMajors.Remove(item.Major); } } foreach (Internship item in lateRegisteredInternships) { CompanyTrainingMajor major = leftMajors.FirstOrDefault(m => m.TrainingMajorId == item.TrainingMajorId); if (major != null) { item.TrainingMajorId = major.TrainingMajorId; item.CompanyId = major.CompanyId; item.Status = InternshipStatus.Success; major.AvailableTraineeCount--; if (major.AvailableTraineeCount == 0) { leftMajors.Remove(major); } UnitOfWork.Repository <Internship>().Update(item); lateRegisteredInternships.Remove(item); } else { CompanyTrainingMajor randomMajor = leftMajors.FirstOrDefault(m => m.TrainingMajor.SubjectId == item.Class.SubjectId); if (randomMajor != null) { item.TrainingMajorId = randomMajor.TrainingMajorId; item.CompanyId = randomMajor.CompanyId; item.Status = InternshipStatus.Success; randomMajor.AvailableTraineeCount--; if (randomMajor.AvailableTraineeCount == 0) { leftMajors.Remove(randomMajor); } UnitOfWork.Repository <Internship>().Update(item); lateRegisteredInternships.Remove(item); } } } foreach (Internship item in lateRegisteredInternships) { item.Status = InternshipStatus.Failed; UnitOfWork.Repository <Internship>().Update(item); } }