private async Task SetSectorReviewOutcome(GetSectorDetailsRequest request, OutcomeSectorDetailsViewModel viewModel) { // TODO: To think about... could we move this into Apply Service? It's really part of getting the moderator page back from the service var pageReviewOutcome = await _clarificationApiClient.GetClarificationPageReviewOutcome(request.ApplicationId, SequenceIds.DeliveringApprenticeshipTraining, SectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees, viewModel.PageId, request.UserId); if (pageReviewOutcome != null) { viewModel.Status = pageReviewOutcome.Status; switch (pageReviewOutcome.Status) { case ClarificationPageReviewStatus.Pass: viewModel.OptionPassText = pageReviewOutcome.Comment; break; case ClarificationPageReviewStatus.Fail: viewModel.OptionFailText = pageReviewOutcome.Comment; break; case ClarificationPageReviewStatus.InProgress: viewModel.OptionInProgressText = pageReviewOutcome.Comment; break; default: break; } viewModel.ModerationOutcome = new ModerationOutcome { ApplicationId = pageReviewOutcome.ApplicationId, SequenceNumber = pageReviewOutcome.SequenceNumber, SectionNumber = pageReviewOutcome.SectionNumber, PageId = pageReviewOutcome.PageId, ModeratorUserId = pageReviewOutcome.ModeratorUserId, ModeratorUserName = pageReviewOutcome.ModeratorUserName, ModeratorReviewStatus = pageReviewOutcome.ModeratorReviewStatus, ModeratorReviewComment = pageReviewOutcome.ModeratorReviewComment }; viewModel.ClarificationOutcome = new ApplyTypes.Outcome.ClarificationOutcome { ApplicationId = pageReviewOutcome.ApplicationId, SequenceNumber = pageReviewOutcome.SequenceNumber, SectionNumber = pageReviewOutcome.SectionNumber, PageId = pageReviewOutcome.PageId, ClarifierUserId = pageReviewOutcome.UserId, ClarifierUserName = pageReviewOutcome.UserName, ClarificationReviewStatus = pageReviewOutcome.Status, ClarificationReviewComment = pageReviewOutcome.Comment, ClarificationResponse = pageReviewOutcome.ClarificationResponse, ClarificationFiles = string.IsNullOrEmpty(pageReviewOutcome.ClarificationFile) ? null : new List <string> { pageReviewOutcome.ClarificationFile } }; viewModel.ClarificationResponse = pageReviewOutcome.ClarificationResponse; viewModel.ClarificationFile = pageReviewOutcome.ClarificationFile; } }
public async Task <OutcomeSectorDetailsViewModel> GetSectorDetailsViewModel(Guid applicationId, string pageId) { var sectorDetails = await _apiClient.GetClarificationSectorDetails(applicationId, pageId); var model = new OutcomeSectorDetailsViewModel { ApplicationId = applicationId, SectorDetails = sectorDetails }; return(model); }
public async Task <OutcomeSectorDetailsViewModel> GetSectorDetailsViewModel(GetSectorDetailsRequest request) { var application = await _applicationApiClient.GetApplication(request.ApplicationId); var clarificationPage = await _clarificationApiClient.GetClarificationPage( request.ApplicationId, SequenceIds.DeliveringApprenticeshipTraining, SectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees, RoatpWorkflowPageIds.YourSectorsAndEmployeesStartingPageId); if (application is null || clarificationPage is null) { return(null); } var sectorDetails = await _clarificationApiClient.GetClarificationSectorDetails(request.ApplicationId, request.PageId); var blindAssessmentOutcome = await _moderationApiClient.GetBlindAssessmentOutcome(request.ApplicationId, SequenceIds.DeliveringApprenticeshipTraining, SectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees, request.PageId); var viewModel = new OutcomeSectorDetailsViewModel { ApplicationId = application.ApplicationId, Ukprn = application.ApplyData.ApplyDetails.UKPRN, PageId = request.PageId, ApplicantEmailAddress = null, ApplyLegalName = application.ApplyData.ApplyDetails.OrganisationName, ApplicationRoute = application.ApplyData.ApplyDetails.ProviderRouteName, SubmittedDate = application.ApplyData.ApplyDetails.ApplicationSubmittedOn, Caption = clarificationPage.Caption, Heading = $"Delivering training in '{sectorDetails?.SectorName}' sector", SectorDetails = sectorDetails, BlindAssessmentOutcome = blindAssessmentOutcome }; await SetSectorReviewOutcome(request, viewModel); return(viewModel); }
public async Task Application_sectors_show_sector_details() { var applicationId = Guid.NewGuid(); const string pageId = "pageId"; const string sectorName = "name of sector"; var viewModel = new OutcomeSectorDetailsViewModel { ApplicationId = applicationId, SectorDetails = new SectorDetails { SectorName = sectorName } }; _outcomeService.Setup(x => x.GetSectorDetailsViewModel(applicationId, pageId)).ReturnsAsync(viewModel); var result = await _controller.GetSectorDetails(applicationId, pageId); var viewResult = result as ViewResult; viewResult.Should().NotBeNull(); viewResult.Model.Should().Be(viewModel); viewResult.ViewName.Should().Contain("ApplicationUnsuccessfulSectorAnswers.cshtml"); }