public void Correct_methods_are_called() { // Given var target = GetTarget(); var viewModel = new EmployeeChecklistGeneratorViewModel() { Message = "Hello Message", ChecklistsToGenerate = new ChecklistsToGenerateViewModel() { ChecklistIds = new List<long>(){1,2,3}, RequestEmployees = new List<EmployeeWithNewEmailRequest>(){new EmployeeWithNewEmailRequest()} }, RiskAssessmentId = 500, }; var userId = target.CurrentUser.UserId; // When target.SaveAndNext(viewModel); // Then _personalRiskAssessmentService .Verify(x =>x.SaveChecklistGenerator(It.Is<SaveChecklistGeneratorRequest>(y => y.Message == viewModel.Message && y.ChecklistIds == viewModel.ChecklistsToGenerate.ChecklistIds && y.CurrentUserId == userId && y.PersonalRiskAssessmentId == viewModel.RiskAssessmentId && y.RequestEmployees ==viewModel.ChecklistsToGenerate.RequestEmployees))); }
public void SetUp() { _employees = new List<EmployeeDto> { new EmployeeDto { Id = new Guid("a9d827d2-cbfc-4d9c-9491-f8e271df77b8"), FullName = "Mark Mauve", MainContactDetails = new EmployeeContactDetailDto{ Email = "*****@*****.**" } }, new EmployeeDto { Id = new Guid("cf7ce0b2-8a97-4c32-8af1-ce3c96716fdd"), FullName = "Peter Pink" }, new EmployeeDto { Id = new Guid("0b20512d-3b4e-4da3-ab8c-6433c3fa4118"), FullName = "Guy Grey", MainContactDetails = new EmployeeContactDetailDto{ Email = "*****@*****.**" } } }; new List<ChecklistDto> { new ChecklistDto { Id = 1L, Title = "Test Checklist 01" }, new ChecklistDto { Id = 2L, Title = "Test Checklist 02" }, new ChecklistDto { Id = 3L, Title = "Test Checklist 03" }, }; _baseInputViewModel = new EmployeeChecklistGeneratorViewModel { EmployeeId = _employees[0].Id, RiskAssessmentId = 234L, IsForMultipleEmployees = "single", SingleEmployeesSectionVisible = true, MultipleEmployeesSectionVisible = false, Employees = null, NewEmployeeEmail = null, NewEmployeeEmailVisible = false, Checklists = null, Message = "Test Message" }; }
public void Setup() { _companyId = 123L; _personalRiskAssessmentId = 333333L; _returnedViewModel = new EmployeeChecklistGeneratorViewModel(); _checklistGeneratorViewModelFactory = new Mock<IEmployeeChecklistGeneratorViewModelFactory>(); _businessSafeSessionManager = new Mock<IBusinessSafeSessionManager>(); _target = GetTarget(); _currentUserId = _target.CurrentUser.UserId; _checklistGeneratorViewModelFactory.Setup(x => x.WithCompanyId(_companyId)).Returns(_checklistGeneratorViewModelFactory.Object); _checklistGeneratorViewModelFactory.Setup(x => x.WithRiskAssessmentId(_personalRiskAssessmentId)).Returns(_checklistGeneratorViewModelFactory.Object); _checklistGeneratorViewModelFactory.Setup(x => x.WithRiskAssessorEmail(TestControllerHelpers.EmailAssigned)).Returns(_checklistGeneratorViewModelFactory.Object); _checklistGeneratorViewModelFactory.Setup(x => x.WithCurrentUserId(_currentUserId)).Returns(_checklistGeneratorViewModelFactory.Object); _checklistGeneratorViewModelFactory.Setup(x => x.GetViewModel()).Returns(_returnedViewModel); }
public void Correct_result_is_returned() { // Given var target = GetTarget(); var viewModel = new EmployeeChecklistGeneratorViewModel() { Message = "Hello Message", ChecklistsToGenerate = new ChecklistsToGenerateViewModel() { ChecklistIds = new List<long>() { 1, 2, 3 }, RequestEmployees = new List<EmployeeWithNewEmailRequest>() { new EmployeeWithNewEmailRequest() } }, RiskAssessmentId = 500, }; // When var result = target.SaveAndNext(viewModel) as JsonResult; // Then Assert.That(result, Is.TypeOf<JsonResult>()); }
private void UpdateChecklistGenerator(EmployeeChecklistGeneratorViewModel viewModel) { var request = new SaveChecklistGeneratorRequest() { Message = viewModel.Message, PersonalRiskAssessmentId = viewModel.RiskAssessmentId, CurrentUserId = CurrentUser.UserId, RequestEmployees = viewModel.ChecklistsToGenerate.RequestEmployees, HasMultipleChecklistRecipients = viewModel.ChecklistsToGenerate.HasMultipleChecklistRecipients, ChecklistIds = viewModel.ChecklistsToGenerate.ChecklistIds, SendCompletedChecklistNotificationEmail = viewModel.SendCompletedChecklistNotificationEmail, CompletionDueDateForChecklists = viewModel.CompletionDueDateForChecklists, CompletionNotificationEmailAddress = viewModel.CompletionNotificationEmailAddress }; _personalRiskAssessmentService.SaveChecklistGenerator(request); }
public JsonResult SaveAndNext(EmployeeChecklistGeneratorViewModel viewModel) { UpdateChecklistGenerator(viewModel); return Json(new { Success = true }); }
public ActionResult Save(EmployeeChecklistGeneratorViewModel viewModel) { if (!ModelState.IsValid) { var returnedViewModel = _checklistGeneratorViewModelFactory .WithRiskAssessmentId(viewModel.RiskAssessmentId) .WithCompanyId(viewModel.CompanyId) .WithCurrentUserId(CurrentUser.UserId) .GetViewModel(viewModel); return View("Index", returnedViewModel); } UpdateChecklistGenerator(viewModel); TempData["Notice"] = "Checklist Generator Successfully Updated"; return RedirectToAction("Index", new { viewModel.RiskAssessmentId, viewModel.CompanyId }); }
private GenerateEmployeeChecklistEmails CreateGenerateEmployeeChecklistEmailsCommand(EmployeeChecklistGeneratorViewModel viewModel) { var command = new GenerateEmployeeChecklistEmails { GeneratingUserId = CurrentUser.UserId, Message = viewModel.Message, RiskAssessmentId = viewModel.RiskAssessmentId, RequestEmployees = viewModel.ChecklistsToGenerate.RequestEmployees.Select(x => new EmployeeWithNewEmail { EmployeeId = x.EmployeeId, NewEmail = x.NewEmail }).ToList(), ChecklistIds = viewModel.ChecklistsToGenerate.ChecklistIds.ToList(), SendCompletedChecklistNotificationEmail = viewModel.SendCompletedChecklistNotificationEmail, CompletionDueDateForChecklists = viewModel.CompletionDueDateForChecklists, CompletionNotificationEmailAddress = viewModel.CompletionNotificationEmailAddress }; if (viewModel.NewEmployeeEmailVisible) { command.RequestEmployees[0].NewEmail = viewModel.NewEmployeeEmail; } return command; }
public ActionResult Generate(EmployeeChecklistGeneratorViewModel viewModel) { viewModel.Validate(new ValidationContext(viewModel, null, null), ModelState); if (!ModelState.IsValid) { var invalidViewModel = _checklistGeneratorViewModelFactory .WithRiskAssessmentId(viewModel.RiskAssessmentId) .WithCompanyId(viewModel.CompanyId) .WithCurrentUserId(CurrentUser.UserId) .WithRiskAssessorEmail(CurrentUser.Email) .GetViewModel(viewModel); return View("Index", invalidViewModel); } using (var session = _businessSafeSessionManager.Session) { _personalRiskAssessmentService.SetAsGenerating(viewModel.RiskAssessmentId); _personalRiskAssessmentService.ResetChecklistAfterGenerate(new ResetAfterChecklistGenerateRequest() { CompanyId = viewModel.CompanyId, CurrentUserId = CurrentUser.UserId, PersonalRiskAssessmentId = viewModel.RiskAssessmentId }); _businessSafeSessionManager.CloseSession(); } // Temp measure till we get DTC going correctly var createGenerateEmployeeChecklistEmailsCommand = CreateGenerateEmployeeChecklistEmailsCommand(viewModel); _bus.Send(createGenerateEmployeeChecklistEmailsCommand); TempData["Notice"] = "Employee Checklists Sent"; return RedirectToAction("Index", new { viewModel.RiskAssessmentId, viewModel.CompanyId }); }
public JsonResult ValidateGenerate(EmployeeChecklistGeneratorViewModel viewModel) { var validationErrors = viewModel.Validate(new ValidationContext(viewModel, null, null), ModelState); var errors = validationErrors == null ? null : validationErrors.Select(x => x.ErrorMessage).ToList(); return Json(new { success = !validationErrors.Any(), errors = errors }); }
public EmployeeChecklistGeneratorViewModel GetViewModel() { var personalRiskAssessment = _personalRiskAssessmentService.GetWithChecklistGeneratorEmployeesAndChecklists(_riskAssessmentId, _companyId, _currentUserId); var employees = _employeeService.GetAll(_companyId).ToList(); var viewModel = new EmployeeChecklistGeneratorViewModel() { RiskAssessmentId = _riskAssessmentId, CompanyId = _companyId, Employees = GetEmployees(), Sites = GetSites(), MultiSelectEmployees = employees, Checklists = GetChecklists(), Message = personalRiskAssessment.ChecklistGeneratorMessage, PersonalRiskAssessementEmployeeChecklistStatus = personalRiskAssessment.PersonalRiskAssessementEmployeeChecklistStatus, SendCompletedChecklistNotificationEmail = personalRiskAssessment.SendCompletedChecklistNotificationEmail, CompletionDueDateForChecklists = personalRiskAssessment.CompletionDueDateForChecklists, CompletionNotificationEmailAddress = personalRiskAssessment.CompletionNotificationEmailAddress ?? _riskAssessorEmail, MultiSelectedEmployees = new List<SelectedEmployeeViewModel>() }; SetChecklistGeneratorEmployees(personalRiskAssessment, viewModel); foreach (var checklist in viewModel.Checklists) { if(personalRiskAssessment.Checklists.Select(currentChecklist => currentChecklist.Id).Contains(checklist.Id)) { checklist.Checked = true; } } return viewModel; }
private void SetChecklistGeneratorEmployees(PersonalRiskAssessmentDto personalRiskAssessment, EmployeeChecklistGeneratorViewModel viewModel) { if (personalRiskAssessment.ChecklistGeneratorEmployees.Count() == 1) { viewModel.IsForMultipleEmployees = "single"; viewModel.SingleEmployeesSectionVisible = true; var employee = personalRiskAssessment.ChecklistGeneratorEmployees.ToList()[0]; if (employee.MainContactDetails == null || string.IsNullOrEmpty(employee.MainContactDetails.Email)) { viewModel.NewEmployeeEmailVisible = true; viewModel.ExistingEmployeeEmailVisible = false; } else { viewModel.NewEmployeeEmailVisible = false; viewModel.ExistingEmployeeEmailVisible = true; viewModel.ExistingEmployeeEmail = employee.MainContactDetails.Email; } viewModel.EmployeeId = employee.Id; } if (personalRiskAssessment.ChecklistGeneratorEmployees.Count() > 1) { viewModel.IsForMultipleEmployees = "multiple"; viewModel.MultipleEmployeesSectionVisible = true; viewModel.MultiSelectedEmployees = _selectedEmployeeViewModelFactory .WithCompanyId(_companyId) .WithRiskAssessmentId(_riskAssessmentId) .WithUserId(_currentUserId) .GetViewModel(); } }
public EmployeeChecklistGeneratorViewModel GetViewModel(EmployeeChecklistGeneratorViewModel viewModel) { var personalRiskAssessment = _personalRiskAssessmentService.GetWithChecklistGeneratorEmployeesAndChecklists(_riskAssessmentId, _companyId, _currentUserId); var employees = _employeeService.GetAll(_companyId).ToList(); var returnViewModel = new EmployeeChecklistGeneratorViewModel { EmployeeId = viewModel.EmployeeId, RiskAssessmentId = viewModel.RiskAssessmentId, IsForMultipleEmployees = viewModel.IsForMultipleEmployees, SingleEmployeesSectionVisible = viewModel.SingleEmployeesSectionVisible, MultipleEmployeesSectionVisible = viewModel.MultipleEmployeesSectionVisible, Employees = GetEmployees(), MultiSelectEmployees = employees, NewEmployeeEmail = viewModel.NewEmployeeEmail, NewEmployeeEmailVisible = viewModel.NewEmployeeEmailVisible, ExistingEmployeeEmail = viewModel.ExistingEmployeeEmail, ExistingEmployeeEmailVisible = viewModel.ExistingEmployeeEmailVisible, Checklists = GetChecklists(), Message = viewModel.Message, ChecklistsToGenerate = viewModel.ChecklistsToGenerate, SendCompletedChecklistNotificationEmail = viewModel.SendCompletedChecklistNotificationEmail, CompletionNotificationEmailAddress = viewModel.CompletionNotificationEmailAddress, CompletionDueDateForChecklists = viewModel.CompletionDueDateForChecklists, CompanyId = _companyId }; SetChecklistGeneratorEmployees(personalRiskAssessment, returnViewModel); return returnViewModel; }