示例#1
0
        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();
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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));
     }
 }
示例#5
0
        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();
            }
        }
示例#6
0
        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);
        }