Example #1
0
        public async Task <ActionResult> Confirmation(PersonalDetailViewModel model, [FromUri] bool?overrideFilterServices)
        {
            if (!ModelState.IsValid)
            {
                //populate address picker fields
                model = await PopulateAddressPickerFields(model);

                return(View("PersonalDetails", model));
            }
            var availableServices = await GetServiceAvailability(model, DateTime.Now, overrideFilterServices.HasValue?overrideFilterServices.Value : model.FilterServices, null);

            _auditLogger.LogDosResponse(model);
            if (SelectedServiceExits(model.SelectedService.Id, availableServices))
            {
                var outcomeViewModel = ConvertPatientInformantDateToUserinfo(model.PatientInformantDetails, model);
                outcomeViewModel = await _outcomeViewModelBuilder.ItkResponseBuilder(outcomeViewModel);

                if (outcomeViewModel.ItkSendSuccess.HasValue && outcomeViewModel.ItkSendSuccess.Value)
                {
                    return(View(outcomeViewModel));
                }
                return(outcomeViewModel.ItkDuplicate.HasValue && outcomeViewModel.ItkDuplicate.Value ? View("DuplicateBookingFailure", outcomeViewModel) : View("ServiceBookingFailure", outcomeViewModel));
            }

            model.UnavailableSelectedService    = model.SelectedService;
            model.DosCheckCapacitySummaryResult = availableServices;
            model.DosCheckCapacitySummaryResult.ServicesUnavailable = availableServices.ResultListEmpty;
            model.UserInfo.CurrentAddress.IsInPilotArea             = _postCodeAllowedValidator.IsAllowedPostcode(model.CurrentPostcode) == PostcodeValidatorResponse.InPathwaysArea;

            return(View("ServiceBookingUnavailable", model));
        }
Example #2
0
        private async Task <ActionResult> SubmitITKDataToService(PersonalDetailViewModel model)
        {
            var outcomeViewModel         = ConvertPatientInformantDateToUserinfo(model.EmailAddress, model);
            var itkConfirmationViewModel = await _outcomeViewModelBuilder.ItkResponseBuilder(outcomeViewModel);

            var result = _referralResultBuilder.Build(itkConfirmationViewModel);

            return(View(result.ViewName, result));
        }