Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 private void SetupSelectLists(AddProjectViewModel viewModel)
 {
     viewModel.UsersSelectList = _userService.UsersSelectList();
 }
Esempio n. 4
0
        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);
        }