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