Exemple #1
0
 private AccessRequestViewModel PopulateStaticData(AccessRequestViewModel viewModel)
 {
     viewModel.UserTypeList = GetAccessRequestAreaTypes();
     viewModel.TitleList    = GetTitleTypes();
     viewModel.ServiceTypes = GetAccessRequestServiceTypes(viewModel);
     return(viewModel);
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #8
0
        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));
            }
        }