public EditSummaryViewModel GetViewModel()
        {
            var riskAssessment = _riskAssessmentService.GetRiskAssessment(_riskAssessmentId, _companyId);

            var model = new EditSummaryViewModel()
                   {
                       RiskAssessmentId = _riskAssessmentId,
                       CompanyId = _companyId,
                       Reference = riskAssessment.Reference,
                       Title = riskAssessment.Title,
                       DateOfAssessment = riskAssessment.AssessmentDate ?? DateTime.Today,
                       HazardousSubstanceId = riskAssessment.HazardousSubstance.Id,
                       HazardousSubstance = riskAssessment.HazardousSubstance.Name
                   };

            model = AttachDropDownData(model);
            if(riskAssessment.Site != null)
            {
                model.Site = riskAssessment.Site.Name;
                model.SiteId = riskAssessment.Site.Id;
            }
            if(riskAssessment.RiskAssessor != null)
            {
                model.RiskAssessorId = riskAssessment.RiskAssessor.Id;
                model.RiskAssessor = riskAssessment.RiskAssessor.FormattedName;
            }

            return model;
        }
        public void Setup()
        {
            _genericEditSummaryViewModel = new EditSummaryViewModel()
            {
                CompanyId = 123L,
                RiskAssessmentId = 789L,
                DateOfAssessment = DateTime.Now,
                HazardousSubstanceId = 456L,
                Title = "title",
                Reference = "reference",
                RiskAssessorId = 567L
            };
            _viewModelFactory = new Mock<IEditHazardousSubstanceRiskAssessmentSummaryViewModelFactory>();
            _viewModelFactory
                .Setup(x => x.WithRiskAssessmentId(It.IsAny<long>()))
                .Returns(_viewModelFactory.Object);
            _viewModelFactory
                .Setup(x => x.WithCompanyId(It.IsAny<long>()))
                .Returns(_viewModelFactory.Object);
            _viewModelFactory
                .Setup(x => x.GetViewModel())
                .Returns(new EditSummaryViewModel());

            _riskAssessmentService = new Mock<IHazardousSubstanceRiskAssessmentService>();
            _riskAssessmentService.Setup(x => x.UpdateRiskAssessmentSummary(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()));

            target = GetTarget();
        }
Example #3
0
        public void Given_no_riskassessor_Model_When_Save_Then_add_error()
        {
            // Given
            const long riskAssessmentId = 1324L;
            const long companyId = 1324L;

            _viewModelFactory
               .Setup(x => x.WithRiskAssessmentId(riskAssessmentId))
               .Returns(_viewModelFactory.Object);

            _viewModelFactory
               .Setup(x => x.WithCompanyId(companyId))
               .Returns(_viewModelFactory.Object);

            var target = GetTarget();

            var allowableSites = target.CurrentUser.GetSitesFilter();
            _viewModelFactory
               .Setup(x => x.WithAllowableSiteIds(allowableSites))
               .Returns(_viewModelFactory.Object);

            _viewModelFactory
               .Setup(x => x.GetViewModel())
               .Returns(new EditSummaryViewModel());

            var editSummaryViewModel = new EditSummaryViewModel()
            {
                RiskAssessmentId = riskAssessmentId,
                CompanyId = companyId,
                Title = "New Title",
                Reference = "New Reference"
            };

            // When
            target.Save(editSummaryViewModel);

            // Then
            Assert.That(target.ModelState.IsValid, Is.False);
            Assert.That(target.ModelState.ContainsKey("RiskAssessorId"));
        }
        public ActionResult Save(EditSummaryViewModel viewModelParam)
        {
            Validate(viewModelParam);

            if (ModelState.IsValid)
            {
                try
                {
                    UpdateRiskAssessmentSummary(viewModelParam);
                    TempData["Notice"] = "Risk Assessment Summary Successfully Updated";
                    RedirectToAction("Index", new { hazardousSubstanceRiskAssessmentId = viewModelParam, companyId = CurrentUser.CompanyId });
                }
                catch (ValidationException validationException)
                {
                    ModelState.AddValidationErrors(validationException);
                }
            }

            return View("Index", _viewModelFactory
                                        .WithCompanyId(viewModelParam.CompanyId)
                                        .WithAllowableSiteIds(CurrentUser.GetSitesFilter())
                                        .AttachDropDownData(viewModelParam));
        }
 public JsonResult SaveAndNext(EditSummaryViewModel model)
 {
     if(model.HazardousSubstanceId == 0)
     {
         return Json(new { Success = false, Errors = new[] { "The Hazardous Substance is required" } });
     }
     try
     {
         if (ModelState.IsValid)
         {
             UpdateRiskAssessmentSummary(model);
             return Json(new { Success = true });
         }
         else
         {
             return ModelStateErrorsAsJson();
         }
     }
     catch (ValidationException validationException)
     {
         ModelState.AddValidationErrors(validationException);
         return ModelStateErrorsAsJson();
     }
 }
 private void Validate(EditSummaryViewModel viewModel)
 {
     if (viewModel.RiskAssessorId == null)
     {
         ModelState.AddModelError("RiskAssessorId", "Please select a Risk Assessor");
     }
     if (viewModel.SiteId == null)
     {
         ModelState.AddModelError("SiteId", "Please select a Site");
     }
 }
 private void UpdateRiskAssessmentSummary(EditSummaryViewModel model)
 {
     _riskAssessmentService.UpdateRiskAssessmentSummary(new SaveHazardousSubstanceRiskAssessmentRequest
     {
         Id = model.RiskAssessmentId,
         CompanyId = model.CompanyId,
         Title = model.Title,
         Reference = model.Reference,
         UserId = CurrentUser.UserId,
         AssessmentDate = model.DateOfAssessment,
         RiskAssessorId = model.RiskAssessorId,
         HazardousSubstanceId = model.HazardousSubstanceId,
         SiteId = model.SiteId
     });
 }
Example #8
0
        public void Given_Valid_Model_When_Save_Then_Request_AttachDropdownData_From_ViewModelFactory()
        {
            // Given
            var editSummaryViewModel = new EditSummaryViewModel()
            {
                RiskAssessmentId = 100,
                CompanyId = 200,
                Title = "New Title",
                Reference = "New Reference",
                HazardousSubstanceId = 300
            };
            var target = GetTarget();

            // When
            var result = target.Save(editSummaryViewModel);
            var viewResult = result as ViewResult;

            // Then
            _viewModelFactory.Verify(x => x.WithCompanyId(200));
            _viewModelFactory.Verify(x => x.AttachDropDownData(It.IsAny<EditSummaryViewModel>()));
        }
Example #9
0
        public void Given_Valid_Model_When_Save_Then_Send_Update_Request_To_Service()
        {
            // Given
            var editSummaryViewModel = new EditSummaryViewModel()
            {
                RiskAssessmentId = 100,
                CompanyId = 200,
                Title = "New Title",
                Reference = "New Reference",
                HazardousSubstanceId = 300,
                RiskAssessorId = 1234L,
                SiteId = 678L
            };
            var passedSaveRiskAssessmentRequest = new SaveHazardousSubstanceRiskAssessmentRequest();
            _riskAssessmentService
                .Setup(x => x.UpdateRiskAssessmentSummary(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()))
                .Callback<SaveHazardousSubstanceRiskAssessmentRequest>(y => passedSaveRiskAssessmentRequest = y);
            var target = GetTarget();

            // When
            var result = target.Save(editSummaryViewModel);
            var viewResult = result as ViewResult;

            // Then
            _riskAssessmentService.Verify(x => x.UpdateRiskAssessmentSummary(It.IsAny<SaveHazardousSubstanceRiskAssessmentRequest>()));
            Assert.That(passedSaveRiskAssessmentRequest.Id, Is.EqualTo(editSummaryViewModel.RiskAssessmentId));
            Assert.That(passedSaveRiskAssessmentRequest.CompanyId, Is.EqualTo(editSummaryViewModel.CompanyId));
            Assert.That(passedSaveRiskAssessmentRequest.Title, Is.EqualTo(editSummaryViewModel.Title));
            Assert.That(passedSaveRiskAssessmentRequest.Reference, Is.EqualTo(editSummaryViewModel.Reference));
            Assert.That(passedSaveRiskAssessmentRequest.UserId, Is.EqualTo(target.CurrentUser.UserId));
            Assert.That(passedSaveRiskAssessmentRequest.HazardousSubstanceId, Is.EqualTo(editSummaryViewModel.HazardousSubstanceId));
        }
        public void Given_AttachDropdownData_Then_Requests_From_Service()
        {
            // Given
            const long companyId = 200;

            var passedSearchEmployeesRequest = new SearchEmployeesRequest();

            _employeeService
                .Setup(x => x.Search(It.IsAny<SearchEmployeesRequest>()))
                .Returns(new List<EmployeeDto>()
                         {
                             new EmployeeDto(),
                             new EmployeeDto(),
                             new EmployeeDto()
                         })
                .Callback<SearchEmployeesRequest>(y => passedSearchEmployeesRequest = y);

            var passedSearchHazardousSubstancesRequest = new SearchHazardousSubstancesRequest();

            _substanceService
                .Setup(x => x.Search(It.IsAny<SearchHazardousSubstancesRequest>()))
                .Returns(new List<HazardousSubstanceDto>()
                         {
                             new HazardousSubstanceDto(),
                             new HazardousSubstanceDto(),
                             new HazardousSubstanceDto(),
                             new HazardousSubstanceDto()
                         })
                .Callback<SearchHazardousSubstancesRequest>(y => passedSearchHazardousSubstancesRequest = y);

            var model = new EditSummaryViewModel();

            // When
            var result = target
                .WithCompanyId(companyId)
                .AttachDropDownData(model);

            // Then
            Assert.That(result, Is.InstanceOf<EditSummaryViewModel>());
            Assert.That(passedSearchEmployeesRequest.CompanyId, Is.EqualTo(companyId));
            Assert.That(passedSearchEmployeesRequest.MaximumResults, Is.EqualTo(100));
            Assert.That(passedSearchHazardousSubstancesRequest.CompanyId, Is.EqualTo(companyId));
            Assert.That(model.HazardousSubstances.Count(), Is.EqualTo(5)); // plus 1 for '--select option--'
            Assert.That(model.RiskAssessmentAssessors.Count(), Is.EqualTo(4)); // plus 1 for '--select option--'
        }
        public EditSummaryViewModel AttachDropDownData(EditSummaryViewModel model)
        {
            var riskAssessmentAssessors = _employeeService.Search(new SearchEmployeesRequest()
            {
                CompanyId = _companyId,
                MaximumResults = 100
            });
            var assessors = riskAssessmentAssessors.OrderBy(x => x.FullName).Select(AutoCompleteViewModel.ForEmployeeNoJobTitle).AddDefaultOption();

            var hazardousSubstances = _hazardousSubstancesService.Search(new SearchHazardousSubstancesRequest()
            {
                CompanyId = _companyId
            });
            var hazardousSubstancesForDropdown = hazardousSubstances.OrderBy(x => x.Name).Select(AutoCompleteViewModel.ForHazardousSubstance).AddDefaultOption();

            var siteStructureElements = _siteService.Search(new SearchSitesRequest
            {
                CompanyId = _companyId,
                AllowedSiteIds = _allowedSiteIds,
                PageLimit = 100
            });
            var sites = siteStructureElements.Select(x => new AutoCompleteViewModel(x.Name, x.Id.ToString())).AddDefaultOption();
            model.Sites = sites;

            model.HazardousSubstances = hazardousSubstancesForDropdown;
            model.RiskAssessmentAssessors = assessors;

            return model;
        }