public virtual ActionResult Add() { var viewModel = new AddProjectViewModel(); viewModel.Alternatives = new List<AlternativeModel>() { new AlternativeModel() { } }; viewModel.Factors = new List<FactorModel>() { new FactorModel() { } }; SetupSelectLists(viewModel); ViewBag.Title = ViewTitles.AddProject; return View(viewModel); }
public virtual ActionResult Add(AddProjectViewModel viewModel) { if (ModelState.IsValid) { var domainModel = Mapper.Map<Project>(viewModel); domainModel.AssessmentQuestionCount = 10; domainModel.Experts = new List<User>(); foreach (var item in viewModel.Users) { domainModel.Experts.Add(_userService.Get(item)); } _projectService.Add(domainModel); TempData.AddFlash(ApplicationStrings.ProjectAdded); return RedirectToAction(MVC.Projects.Index()); } SetupSelectLists(viewModel); ViewBag.Title = ViewTitles.AddProject; return View(viewModel); }
private void SetupSelectLists(AddProjectViewModel viewModel) { viewModel.UsersSelectList = _userService.UsersSelectList(); }
public virtual ActionResult Edit(int id, AddProjectViewModel viewModel) { Project project = _projectService.Get(id); if (ModelState.IsValid) { project.Name = viewModel.Name; var editedExperts = viewModel.Users; var originalExperts = project.Experts.Select(x => x.UserId); var newExperts = editedExperts.Except(originalExperts).ToArray(); var removedExperts = originalExperts.Except(editedExperts).ToArray(); if (project.FinalAssessment != null && (newExperts.Any() || removedExperts.Any())) { ModelState.AddModelError(string.Empty, ApplicationStrings.CannotEditExpertsOnGeneratedFinal); } else { foreach (var item in removedExperts) { var removedExpert = project.Experts.FirstOrDefault(x => x.UserId == item); var removedAssessment = project.Assessments.FirstOrDefault(x => x.ExpertId == item); project.Experts.Remove(removedExpert); project.Assessments.Remove(removedAssessment); } foreach (var item in newExperts) { project.Experts.Add(_userService.Get(item)); _projectService.SetExpertAssessments(project); } _projectService.Update(project); TempData.AddFlash(ApplicationStrings.ProjectAdded); return RedirectToAction(MVC.Projects.Index()); } } SetupSelectLists(viewModel); ViewBag.Title = ViewTitles.EditProject; return View(MVC.Projects.Views.Add, viewModel); }