private AccessRequestViewModel PopulateStaticData(AccessRequestViewModel viewModel) { viewModel.UserTypeList = GetAccessRequestAreaTypes(); viewModel.TitleList = GetTitleTypes(); viewModel.ServiceTypes = GetAccessRequestServiceTypes(viewModel); return(viewModel); }
private AccessRequestServicesViewModel GetAccessRequestServiceTypes(AccessRequestViewModel viewModel) { var referenceData = _referenceDataMediator.GetReferenceData(ReferenceDataTypes.AccessRequestServiceTypes).ViewModel.ReferenceData; var servicesViewModel = new AccessRequestServicesViewModel(); var availableServices = referenceData.Select(data => new AccessRequestServiceTypes() { Id = data.Id, Description = data.Description }).ToList(); //Set availableServices servicesViewModel.AvailableServices = availableServices; if (viewModel.ServiceTypes != null) { var selectedServices = viewModel.ServiceTypes.PostedServiceIds.Select(data => new AccessRequestServiceTypes() { Id = data, IsSelected = true }).ToList(); servicesViewModel.SelectedServices = selectedServices; servicesViewModel.PostedServiceIds = viewModel.ServiceTypes.PostedServiceIds; } return(servicesViewModel); }
public MediatorResponse <AccessRequestViewModel> SubmitAccessRequest() { var viewModel = new AccessRequestViewModel(); viewModel = PopulateStaticData(viewModel); return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.Success, viewModel)); }
public async Task <ActionResult> SubmitAccessRequest(AccessRequestViewModel model) { return(await Task.Run <ActionResult>(() => { var response = _accessRequestMediator.SubmitAccessRequest(model); ModelState.Clear(); switch (response.Code) { case AccessRequestMediatorCodes.SubmitAccessRequest.ValidationError: response.ValidationResult.AddToModelState(ModelState, string.Empty); return View(model); case AccessRequestMediatorCodes.SubmitAccessRequest.Error: SetPageMessage(response.Message.Text, response.Message.Level); return View(model); case AccessRequestMediatorCodes.SubmitAccessRequest.Success: return RedirectToRoute(EmployerRouteNames.AccessRequestThankYou); default: throw new InvalidMediatorCodeException(response.Code); } })); }
public AccessRequestSubmitStatus SubmitAccessRequest(AccessRequestViewModel viewModel) { try { var result = _accessRequestModelToDomainMapper.ConvertToDomain(viewModel); var communicationTokens = new[] { //common tokens new CommunicationToken(CommunicationTokens.Title, result.Title), new CommunicationToken(CommunicationTokens.Firstname, result.Firstname), new CommunicationToken(CommunicationTokens.Lastname, result.Lastname), new CommunicationToken(CommunicationTokens.Fullname, String.Format("{0} {1} {2}", result.Title.ToFirstCharToUpper(), result.Firstname.ToFirstCharToUpper(), result.Lastname.ToFirstCharToUpper())), new CommunicationToken(CommunicationTokens.WorkPhoneNumber, result.WorkPhoneNumber), new CommunicationToken(CommunicationTokens.MobileNumber, result.MobileNumber), new CommunicationToken(CommunicationTokens.Email, result.Email), new CommunicationToken(CommunicationTokens.Position, result.Position), new CommunicationToken(CommunicationTokens.FullAddress, String.Format("{0} {1} {2} {3} {4}", result.Address.AddressLine1, result.Address.AddressLine2, result.Address.AddressLine3, result.Address.City, result.Address.Postcode)), new CommunicationToken(CommunicationTokens.Address1, result.Address.AddressLine1), new CommunicationToken(CommunicationTokens.Address2, result.Address.AddressLine2), new CommunicationToken(CommunicationTokens.Address3, result.Address.AddressLine3), new CommunicationToken(CommunicationTokens.City, result.Address.City), new CommunicationToken(CommunicationTokens.Postcode, result.Address.Postcode), new CommunicationToken(CommunicationTokens.Companyname, result.Companyname), //access request specific tokens new CommunicationToken(CommunicationTokens.UserType, result.UserType), new CommunicationToken(CommunicationTokens.Systemname, result.Systemname), new CommunicationToken(CommunicationTokens.AdditionalEmail, result.AdditionalEmail), new CommunicationToken(CommunicationTokens.Contactname, result.Contactname), new CommunicationToken(CommunicationTokens.AdditionalPhoneNumber, result.AdditionalPhoneNumber), new CommunicationToken(CommunicationTokens.HasApprenticeshipVacancies, result.HasApprenticeshipVacancies ? "Yes" : "No"), new CommunicationToken(CommunicationTokens.SelectedServiceTypeIds, String.Join(", ", result.SelectedServiceTypeIds)) }; //Send confirmation email to applicant _communciationService.SendMessage(MessageTypes.WebAccessRequest, communicationTokens); //Send email to helpdesk _communciationService.SendMessage(MessageTypes.WebAccessRequestConfirmation, communicationTokens); return(AccessRequestSubmitStatus.Success); } catch { //todo: log error using preferred logging mechanism return(AccessRequestSubmitStatus.Error); } }
public AccessRequestViewModel Build() { var model = new AccessRequestViewModel() { Firstname = _firstname, Lastname = _lastname, WorkPhoneNumber = _phoneNumber, MobileNumber = _mobileNumber, Position = _position, Companyname = _companyName, Title = _title, Email = _email, ConfirmEmail = _confirmEmail, UserType = _userType, Address = _addressViewModel }; return(model); }
protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) { return; } var locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; locale = (locale == Locale.French) ? locale : Locale.English; var result = await Mediator.Send(new GetAccessRequestQuery { AccessRequestId = Id, Locale = locale }); IsEmployee = result.IsEmployee; IsManager = result.IsManager; accessRequest = result; StateHasChanged(); await base.OnAfterRenderAsync(firstRender); }
public MediatorResponse <AccessRequestViewModel> SubmitAccessRequest(AccessRequestViewModel viewModel) { var validationResult = _validator.Validate(viewModel); if (!validationResult.IsValid) { viewModel = PopulateStaticData(viewModel); return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.ValidationError, viewModel, validationResult)); } AccessRequestSubmitStatus resultStatus = _accessRequestProvider.SubmitAccessRequest(viewModel); //populate reference data viewModel = PopulateStaticData(viewModel); switch (resultStatus) { case AccessRequestSubmitStatus.Success: return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.Success, viewModel, AccessRequestPageMessages.RequestHasBeenSubmittedSuccessfully, UserMessageLevel.Success)); default: return(GetMediatorResponse(AccessRequestMediatorCodes.SubmitAccessRequest.Error, viewModel, AccessRequestPageMessages.ErrorWhileRequestSubmission, UserMessageLevel.Error)); } }