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(); }
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 }); }
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>())); }
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; }