public async Task <IActionResult> ConditionsOfAcceptance(SelectApplicationRouteViewModel routeViewModel) { if (!ModelState.IsValid) { var model = new SelectApplicationRouteViewModel { ApplicationRoutes = await GetApplicationRoutes(), ErrorMessages = new List <ValidationErrorDetail>() }; var modelErrors = ModelState.Values.SelectMany(v => v.Errors); foreach (var modelError in modelErrors) { model.ErrorMessages.Add(new ValidationErrorDetail { Field = "ApplicationRouteId", ErrorMessage = modelError.ErrorMessage }); } return(View("~/Views/Roatp/SelectApplicationRoute.cshtml", model)); } return(View("~/Views/Roatp/ConditionsOfAcceptance.cshtml", new ConditionsOfAcceptanceViewModel { ApplicationId = routeViewModel.ApplicationId, ApplicationRouteId = routeViewModel.ApplicationRouteId })); }
private async Task <IActionResult> UpdateProviderRoute(SelectApplicationRouteViewModel model) { if (model.ApplicationRouteId == ApplicationRoute.EmployerProviderApplicationRoute && model.LevyPayingEmployer != "Y") { var ukprnAnswer = await _qnaApiClient.GetAnswerByTag(model.ApplicationId, RoatpWorkflowQuestionTags.UKPRN); return(RedirectToAction("ConfirmLevyStatus", new { applicationId = model.ApplicationId, ukprn = ukprnAnswer.Value, applicationRouteId = model.ApplicationRouteId })); } var result = await UpdatePageAnswersbyTag(model); if (result.ValidationPassed) { await UpdatePageAnswersBySectionNo(model); } if (result.ValidationPassed) { await ChangeProviderRouteResetRouteQuestions(model); } return(RedirectToAction("ConditionsOfAcceptance", new { applicationId = model.ApplicationId, applicationRouteId = model.ApplicationRouteId })); }
public async Task <IActionResult> ProcessRoute(SelectApplicationRouteViewModel model) { if (!ModelState.IsValid) { model.ApplicationRoutes = await GetApplicationRoutes(); model.ErrorMessages = new List <ValidationErrorDetail>(); var modelErrors = ModelState.Values.SelectMany(v => v.Errors); foreach (var modelError in modelErrors) { model.ErrorMessages.Add(new ValidationErrorDetail { Field = "ApplicationRouteId", ErrorMessage = modelError.ErrorMessage }); } return(View("~/Views/Roatp/SelectApplicationRoute.cshtml", model)); } if (model.ApplicationRouteId == ApplicationRoute.EmployerProviderApplicationRoute) { var applicationRoutes = await GetApplicationRoutes(); var applicationDetails = _sessionService.Get <ApplicationDetails>(ApplicationDetailsKey); applicationDetails.ApplicationRoute = applicationRoutes.FirstOrDefault(x => x.Id == model.ApplicationRouteId); _sessionService.Set(ApplicationDetailsKey, applicationDetails); return(RedirectToAction("ConfirmLevyStatus", new { ukprn = applicationDetails.UKPRN, applicationRouteId = model.ApplicationRouteId })); } else { return(RedirectToAction("ConditionsOfAcceptance", model)); } }
public async Task <IActionResult> StartApplication(SelectApplicationRouteViewModel model) { if (!ModelState.IsValid) { model.ApplicationRoutes = await GetApplicationRoutes(); model.ErrorMessages = new List <ValidationErrorDetail>(); var modelErrors = ModelState.Values.SelectMany(v => v.Errors); foreach (var modelError in modelErrors) { model.ErrorMessages.Add(new ValidationErrorDetail { Field = "ApplicationRouteId", ErrorMessage = modelError.ErrorMessage }); } return(View("~/Views/Roatp/SelectApplicationRoute.cshtml", model)); } if (model.ApplicationId == Guid.Empty) { return(await StartRoatpApplication(model)); } else { return(await UpdateProviderRoute(model)); } }
private async Task <IActionResult> StartRoatpApplication(SelectApplicationRouteViewModel model) { _logger.LogDebug("StartRoatpApplication invoked"); var applicationDetails = _sessionService.Get <ApplicationDetails>(ApplicationDetailsKey); applicationDetails.ApplicationRoute = new ApplicationRoute { Id = model.ApplicationRouteId }; var user = await _usersApiClient.GetUserBySignInId(User.GetSignInId()); applicationDetails.CreatedBy = user.Id; var createOrganisationRequest = Mapper.Map <CreateOrganisationRequest>(applicationDetails); await _organisationApiClient.Create(createOrganisationRequest, user.Id); _sessionService.Set(ApplicationDetailsKey, applicationDetails); if (!user.IsApproved) { await _usersApiClient.ApproveUser(user.Id); } _logger.LogDebug("StartRoatpApplication completed"); return(RedirectToAction("Applications", "RoatpApplication", new { applicationType = ApplicationTypes.RegisterTrainingProviders })); }
private async Task ChangeProviderRouteResetRouteQuestions(SelectApplicationRouteViewModel model) { var providerRoutes = await _roatpApiClient.GetApplicationRoutes(); var selectedProviderRoute = providerRoutes.FirstOrDefault(x => x.Id == model.ApplicationRouteId); await _applicationApiClient.ChangeProviderRoute(new ChangeProviderRouteRequest { ApplicationId = model.ApplicationId, ProviderRoute = model.ApplicationRouteId, ProviderRouteName = selectedProviderRoute?.RouteName }); await _resetRouteQuestionsService.ResetRouteQuestions(model.ApplicationId, model.ApplicationRouteId); }
private async Task <SetPageAnswersResponse> UpdatePageAnswersbyTag(SelectApplicationRouteViewModel model) { var providerRouteAnswer = new List <Answer> { new Answer { QuestionId = RoatpPreambleQuestionIdConstants.ApplyProviderRoute, Value = model.ApplicationRouteId.ToString() } }; var result = await _qnaApiClient.UpdatePageAnswers(model.ApplicationId, RoatpWorkflowSequenceIds.Preamble, RoatpWorkflowSectionIds.Preamble, RoatpWorkflowPageIds.ProviderRoute, providerRouteAnswer); return(result); }
public async Task <IActionResult> ChangeApplicationProviderRoute(Guid applicationId) { var model = new SelectApplicationRouteViewModel { ApplicationId = applicationId }; PopulateGetHelpWithQuestion(model, "ApplicationRoute"); model.ApplicationRoutes = await GetApplicationRoutesForOrganisation(applicationId); var applicationRoute = await _qnaApiClient.GetAnswerByTag(applicationId, RoatpWorkflowQuestionTags.ProviderRoute); model.ApplicationRouteId = Convert.ToInt32(applicationRoute.Value); return(View("~/Views/Roatp/SelectApplicationRoute.cshtml", model)); }
public async Task <IActionResult> ProcessRoute(SelectApplicationRouteViewModel model) { if (model.ApplicationRouteId == ApplicationRoute.EmployerProviderApplicationRoute) { var applicationRoutes = await GetApplicationRoutesForOrganisation(); var applicationDetails = _sessionService.Get <ApplicationDetails>(ApplicationDetailsKey); applicationDetails.ApplicationRoute = applicationRoutes.FirstOrDefault(x => x.Id == model.ApplicationRouteId); _sessionService.Set(ApplicationDetailsKey, applicationDetails); return(RedirectToAction("ConfirmLevyStatus", new { ukprn = applicationDetails.UKPRN, applicationRouteId = model.ApplicationRouteId })); } else { return(await ConditionsOfAcceptance(new SelectApplicationRouteViewModel { ApplicationRouteId = model.ApplicationRouteId })); } }
private async Task UpdatePageAnswersBySectionNo(SelectApplicationRouteViewModel model) { var preambleDetails = await _qnaApiClient.GetPageBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.Preamble, RoatpWorkflowSectionIds.Preamble, RoatpWorkflowPageIds.Preamble); var preambleAnswers = preambleDetails?.PageOfAnswers[0]?.Answers; var onRoatp = await _qnaApiClient.GetAnswerByTag(model.ApplicationId, RoatpWorkflowQuestionTags.OnRoatp); var onRoatpRegisterTrue = onRoatp?.Value == "TRUE"; var routeAndOnRoatp = string.Empty; switch (model.ApplicationRouteId) { case ApplicationRoute.MainProviderApplicationRoute: routeAndOnRoatp = onRoatpRegisterTrue ? RouteAndOnRoatpTags.MainOnRoatp : RouteAndOnRoatpTags.MainNotOnRoatp; break; case ApplicationRoute.EmployerProviderApplicationRoute: routeAndOnRoatp = onRoatpRegisterTrue ? RouteAndOnRoatpTags.EmployerOnRoatp : RouteAndOnRoatpTags.EmployerNotOnRoatp; break; case ApplicationRoute.SupportingProviderApplicationRoute: routeAndOnRoatp = onRoatpRegisterTrue ? RouteAndOnRoatpTags.SupportingOnRoatp : RouteAndOnRoatpTags.SupportingNotOnRoatp; break; } if (preambleAnswers != null) { foreach (var answer in preambleAnswers.Where(ans => ans.QuestionId == RoatpPreambleQuestionIdConstants.RouteAndOnRoatp)) { answer.Value = routeAndOnRoatp; } await _qnaApiClient.UpdatePageAnswers(model.ApplicationId, RoatpWorkflowSequenceIds.Preamble, RoatpWorkflowSectionIds.Preamble, RoatpWorkflowPageIds.Preamble, preambleAnswers); } }
public async Task <IActionResult> SubmitLevyStatus(EmployerLevyStatusViewModel model) { if (!ModelState.IsValid) { model.ErrorMessages = new List <ValidationErrorDetail>(); var modelErrors = ModelState.Values.SelectMany(v => v.Errors); foreach (var modelError in modelErrors) { model.ErrorMessages.Add(new ValidationErrorDetail { Field = "LevyPayingEmployer", ErrorMessage = modelError.ErrorMessage }); } return(View("~/Views/Roatp/ConfirmLevyStatus.cshtml", model)); } if (model.ApplicationId == Guid.Empty) { var applicationDetails = _sessionService.Get <ApplicationDetails>(ApplicationDetailsKey); applicationDetails.LevyPayingEmployer = model.LevyPayingEmployer; _sessionService.Set(ApplicationDetailsKey, applicationDetails); } if (model.LevyPayingEmployer == "Y") { var selectApplicationRouteModel = new SelectApplicationRouteViewModel { ApplicationRouteId = model.ApplicationRouteId, ApplicationId = model.ApplicationId, LevyPayingEmployer = model.LevyPayingEmployer }; if (selectApplicationRouteModel.ApplicationId == Guid.Empty) { return(RedirectToAction("ConditionsOfAcceptance", model)); } else { return(await UpdateProviderRoute(selectApplicationRouteModel)); } } return(RedirectToAction("IneligibleNonLevy", new { applicationId = model.ApplicationId })); }
public async Task <IActionResult> SelectApplicationRoute() { var model = new SelectApplicationRouteViewModel(); var applicationRoutes = await GetApplicationRoutes(); model.ApplicationRoutes = applicationRoutes; var applicationDetails = _sessionService.Get <ApplicationDetails>(ApplicationDetailsKey); if (applicationDetails?.ApplicationRoute != null) { model.ApplicationRouteId = applicationDetails.ApplicationRoute.Id; } PopulateGetHelpWithQuestion(model); return(View("~/Views/Roatp/SelectApplicationRoute.cshtml", model)); }
public async Task <IActionResult> UpdateApplicationProviderRoute(SelectApplicationRouteViewModel model) { if (model.ApplicationRouteId == ApplicationRoute.EmployerProviderApplicationRoute && model.LevyPayingEmployer != "Y") { var ukprnAnswer = await _qnaApiClient.GetAnswerByTag(model.ApplicationId, RoatpWorkflowQuestionTags.UKPRN); return(RedirectToAction("ConfirmLevyStatus", new { applicationId = model.ApplicationId, ukprn = ukprnAnswer.Value, applicationRouteId = model.ApplicationRouteId })); } var providerRouteAnswer = new List <Answer> { new Answer { QuestionId = RoatpPreambleQuestionIdConstants.ApplyProviderRoute, Value = model.ApplicationRouteId.ToString() } }; var result = await _qnaApiClient.UpdatePageAnswers(model.ApplicationId, RoatpWorkflowSequenceIds.Preamble, RoatpWorkflowSectionIds.Preamble, RoatpWorkflowPageIds.ProviderRoute, providerRouteAnswer); var providerRoutes = await _roatpApiClient.GetApplicationRoutes(); var selectedProviderRoute = providerRoutes.FirstOrDefault(x => x.Id == model.ApplicationRouteId); if (result.ValidationPassed) { await _applicationApiClient.ChangeProviderRoute(new ChangeProviderRouteRequest { ApplicationId = model.ApplicationId, ProviderRoute = model.ApplicationRouteId, ProviderRouteName = selectedProviderRoute?.RouteName }); await _resetRouteQuestionsService.ResetRouteQuestions(model.ApplicationId, model.ApplicationRouteId); } return(RedirectToAction("ConditionsOfAcceptance", new { applicationId = model.ApplicationId, applicationRouteId = model.ApplicationRouteId })); }
public async Task <IActionResult> UpdateApplicationProviderRoute(SelectApplicationRouteViewModel model) { return(await UpdateProviderRoute(model)); }