internal void CreateNewFieldOfStudy(NewFieldOfStudyViewModel model, int?uniId) { using (var db = new ErasmusDbContext()) { if (model.Id.HasValue) { //Edit var fos = db.FieldsOfStudy.SingleOrDefault(x => x.Id == model.Id && x.UniversityId == uniId); if (fos == null) { throw new FormValidationException("Invalid field of study"); } var studySubjects = new List <StudySubjects>(); if (model.SelectedStudySubjects != null && model.SelectedStudySubjects.Any()) { studySubjects = db.StudySubjects.Where(x => model.SelectedStudySubjects.Contains(x.Id)).ToList(); if (studySubjects.Count != model.SelectedStudySubjects.Count) { throw new ValidationException("Some study subjects were not found."); } } foreach (var subject in fos.StudySubjects) { subject.FieldOfStudyId = null; } db.SaveChanges(); fos.Degree = model.Degree; fos.Name = model.Name; fos.StudySubjects = studySubjects; db.SaveChanges(); } else { //New var studySubjects = new List <StudySubjects>(); if (model.SelectedStudySubjects != null && model.SelectedStudySubjects.Any()) { studySubjects = db.StudySubjects.Where(x => model.SelectedStudySubjects.Contains(x.Id)).ToList(); if (studySubjects.Count != model.SelectedStudySubjects.Count) { throw new ValidationException("Some study subjects were not found."); } } db.FieldsOfStudy.Add(new FieldOfStudy() { Name = model.Name, Degree = model.Degree, StudySubjects = studySubjects, UniversityId = uniId }); db.SaveChanges(); } } }
internal object GetNewFieldOfStudyViewModel(int?uniId) { var model = new NewFieldOfStudyViewModel(); using (var db = new ErasmusDbContext()) { model.StudySubjects = new MultiSelectList(db.StudySubjects.Where(x => x.UniversityId == uniId).ToList() .Select(x => new KeyValueIntStr() { Key = x.Id, Value = x.Name }), "Key", "Value"); } return(model); }
public NewFieldOfStudyViewModel GetNewFieldOfStudyViewModel() { var model = new NewFieldOfStudyViewModel(); using (var db = new ErasmusDbContext()) { model.StudySubjects = new SelectList(db.StudySubjects.Where(x => x.FieldOfStudyId == null).ToList() .Select(x => new KeyValueIntStr() { Key = x.Id, Value = x.Name }), "Key", "Value"); } return(model); }
public ActionResult NewFieldOfStudy(NewFieldOfStudyViewModel model) { try { if (ModelState.IsValid) { _adminBusinessLogic.CreateNewFieldOfStudy(model); ViewData.Add("LastActionResult", "Field of study created"); return(RedirectToActionPermanent("FieldsOfStudies")); } return(View(model)); } catch (Exception e) { return(Json(new { result = "ERROR", message = e.Message }, JsonRequestBehavior.AllowGet)); } }
public void CreateNewFieldOfStudy(NewFieldOfStudyViewModel model) { using (var db = new ErasmusDbContext()) { var studySubjects = db.StudySubjects.Where(x => model.SelectedStudySubjects.Contains(x.Id)).ToList(); if (studySubjects.Count != model.SelectedStudySubjects.Count) { throw new ValidationException("Some study subjects were not found."); } db.FieldsOfStudy.Add(new FieldOfStudy() { Name = model.Name, Degree = model.Degree, StudySubjects = studySubjects }); db.SaveChanges(); } }
internal object GetNewFieldOfStudyViewModel(int?uniId, int id) { var model = new NewFieldOfStudyViewModel(); using (var db = new ErasmusDbContext()) { var fos = db.FieldsOfStudy.SingleOrDefault(x => x.Id == id && x.UniversityId == uniId); if (fos == null) { throw new FormValidationException("Invalid field of study"); } model.Id = fos.Id; model.Name = fos.Name; model.Degree = fos.Degree; model.StudySubjects = new MultiSelectList(db.StudySubjects.Where(x => x.UniversityId == uniId).ToList() .Select(x => new KeyValueIntStr() { Key = x.Id, Value = x.Name }), "Key", "Value", fos.StudySubjects.Select(x => x.Id).ToList()); } return(model); }