Exemplo n.º 1
0
        private void HydrateSectorDetailsWithHowTrainingIsDeliveredDetails(AssessorPage pageHowDeliveredAndDuration,
                                                                           SectorQuestionIds sectorPageIds, AssessorSectorDetails sectorDetails)
        {
            if (pageHowDeliveredAndDuration?.Answers == null || !pageHowDeliveredAndDuration.Answers.Any())
            {
                return;
            }
            var howHaveTheyDelivered =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(pageHowDeliveredAndDuration.Answers,
                                                                            sectorPageIds.HowHaveTheyDeliveredTraining);

            var otherIsHowTheyDelivered =
                RoatpWorkflowPageIds.DeliveringApprenticeshipTraining.DeliveringTrainingOther;

            if (howHaveTheyDelivered.Contains(otherIsHowTheyDelivered))
            {
                var otherWords =
                    _extractAnswerValueService.ExtractAnswerValueFromQuestionId(pageHowDeliveredAndDuration.Answers,
                                                                                sectorPageIds.HowHaveTheyDeliveredTrainingOther);
                howHaveTheyDelivered = howHaveTheyDelivered.Replace(otherIsHowTheyDelivered, otherWords.Replace(",", ","));
            }

            sectorDetails.HowHaveTheyDeliveredTraining = howHaveTheyDelivered;

            sectorDetails.ExperienceOfDeliveringTraining =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                    pageHowDeliveredAndDuration.Answers, sectorPageIds.ExperienceOfDeliveringTraining);

            sectorDetails.TypicalDurationOfTraining = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                pageHowDeliveredAndDuration.Answers, sectorPageIds.TypicalDurationOfTraining);
        }
        public async Task When_SupplementaryInformation_excluded()
        {
            var safeguardingPreventDutyPolicyPageId = RoatpWorkflowPageIds.SafeguardingPolicyIncludesPreventDutyPolicy;

            var assessorPage = new AssessorPage
            {
                ApplicationId = _applicationId,
                Questions     = new List <Question>
                {
                    new Question {
                        QuestionId = "Q1"
                    }
                },
                Answers = new List <Answer>
                {
                    new Answer {
                        QuestionId = "Q1", Value = "No"
                    }
                }
            };

            _assessorApiClient.Setup(x => x.GetAssessorPage(_applicationId, It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()))
            .ReturnsAsync(assessorPage);

            var result = await _service.GetSupplementaryInformation(_applicationId, safeguardingPreventDutyPolicyPageId);

            CollectionAssert.IsEmpty(result);
        }
        public async Task <AssessorPage> GetPage(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId)
        {
            AssessorPage page = null;

            if (_assessorSequenceService.IsValidSequenceNumber(sequenceNumber))
            {
                var qnaSection = await _qnaApiClient.GetSectionBySectionNo(applicationId, sequenceNumber, sectionNumber);

                var qnaPage = qnaSection?.QnAData.Pages.FirstOrDefault(p => p.PageId == pageId || string.IsNullOrEmpty(pageId));

                if (qnaPage != null)
                {
                    page = qnaPage.ToAssessorPage(_assessorLookupService, applicationId, sequenceNumber, sectionNumber);

                    var nextPageAction = await _qnaApiClient.SkipPageBySectionNo(page.ApplicationId, page.SequenceNumber, page.SectionNumber, page.PageId);

                    if (nextPageAction != null && NextAction.NextPage.Equals(nextPageAction.NextAction, StringComparison.InvariantCultureIgnoreCase))
                    {
                        page.NextPageId = nextPageAction.NextActionId;
                    }
                }
            }

            return(page);
        }
Exemplo n.º 4
0
        private static List <string> GetGuidanceInformation(AssessorPage page)
        {
            var guidanceInformation = new List <string>();

            if (page != null)
            {
                if (!string.IsNullOrEmpty(page.BodyText))
                {
                    guidanceInformation.Add(page.BodyText);
                }

                if (page.Questions != null)
                {
                    foreach (var question in page.Questions)
                    {
                        if (!string.IsNullOrEmpty(question.QuestionBodyText))
                        {
                            guidanceInformation.Add(question.QuestionBodyText);
                        }
                    }
                }
            }

            return(guidanceInformation);
        }
Exemplo n.º 5
0
 private void HydrateSectorDetailsWithWhatStandardsOffered(AssessorPage pageWhatStandardsOffered, AssessorSectorDetails sectorDetails, SectorQuestionIds sectorPageIds)
 {
     if (pageWhatStandardsOffered?.Answers == null || !pageWhatStandardsOffered.Answers.Any())
     {
         return;
     }
     sectorDetails.WhatStandardsOffered = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(pageWhatStandardsOffered.Answers,
                                                                                                      sectorPageIds.WhatStandardsOffered);
 }
Exemplo n.º 6
0
 private void HydrateSectorDetailsWithHowManyEmployees(AssessorPage pageHowManyEmployees, AssessorSectorDetails sectorDetails, SectorQuestionIds sectorPageIds)
 {
     if (pageHowManyEmployees?.Answers == null || !pageHowManyEmployees.Answers.Any())
     {
         return;
     }
     sectorDetails.HowManyEmployees = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(pageHowManyEmployees.Answers,
                                                                                                  sectorPageIds.HowManyEmployees);
 }
Exemplo n.º 7
0
 private void HydrateSectorDetailsWhatTypeOfTrainingDelivered(AssessorSectorDetails sectorDetails,
                                                              AssessorPage pageTypeOfTraining, SectorQuestionIds sectorPageIds)
 {
     if (pageTypeOfTraining?.Answers == null || !pageTypeOfTraining.Answers.Any())
     {
         return;
     }
     sectorDetails.WhatTypeOfTrainingDelivered = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
         pageTypeOfTraining.Answers, sectorPageIds.WhatTypeOfTrainingDelivered);
 }
        public string ExtractFurtherQuestionAnswerValueFromQuestionId(AssessorPage assessorPage, string questionId)
        {
            var mainQuestionAnswer = ExtractAnswerValueFromQuestionId(assessorPage.Answers, questionId);

            var furtherQuestionsQuestionId = assessorPage?.Questions?
                                             .FirstOrDefault(x => x.QuestionId == questionId)?.Options?
                                             .FirstOrDefault(o => o.Value == mainQuestionAnswer)?.FurtherQuestions?.FirstOrDefault()
                                             ?.QuestionId;

            return(ExtractAnswerValueFromQuestionId(assessorPage?.Answers, furtherQuestionsQuestionId));
        }
Exemplo n.º 9
0
        public async Task GetAssessorPage_returns_expected_page()
        {
            var expectedResult = new AssessorPage();

            _pageService.Setup(x => x.GetPage(_applicationId, _sequenceNumber, _sectionNumber, _pageId)).ReturnsAsync(expectedResult);

            var actualResult = await _controller.GetAssessorPage(_applicationId, _sequenceNumber, _sectionNumber, _pageId);

            _pageService.Verify(x => x.GetPage(_applicationId, _sequenceNumber, _sectionNumber, _pageId), Times.Once);
            Assert.AreSame(expectedResult, actualResult);
        }
        public async Task <AssessorPage> GetPage(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId)
        {
            AssessorPage page = null;

            if (_assessorSequenceService.IsValidSequenceNumber(sequenceNumber))
            {
                if (sequenceNumber == RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining &&
                    sectionNumber == RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.ManagementHierarchy &&
                    pageId == RoatpWorkflowPageIds.DeliveringApprenticeshipTraining.ManagementHierarchy_Financial)
                {
                    // Sadly we have to cater for existing applications that never had this page as part of an Blind Assessor check
                    if (await ShouldGetManagementHierarchFinancialPage(applicationId))
                    {
                        page = await GetManagementHierarchFinancialPage(applicationId);
                    }
                }
                else
                {
                    var qnaSection = await _qnaApiClient.GetSectionBySectionNo(applicationId, sequenceNumber, sectionNumber);

                    var qnaPage = qnaSection?.QnAData.Pages.FirstOrDefault(p => p.PageId == pageId || string.IsNullOrEmpty(pageId));

                    if (qnaPage != null)
                    {
                        page = qnaPage.ToAssessorPage(_assessorLookupService, applicationId, sequenceNumber, sectionNumber);

                        var nextPageAction = await _qnaApiClient.SkipPageBySectionNo(page.ApplicationId, page.SequenceNumber, page.SectionNumber, page.PageId);

                        if (nextPageAction != null && NextAction.NextPage.Equals(nextPageAction.NextAction, StringComparison.InvariantCultureIgnoreCase))
                        {
                            page.NextPageId = nextPageAction.NextActionId;
                        }
                        else if (page.PageId == RoatpWorkflowPageIds.DeliveringApprenticeshipTraining.ManagementHierarchy)
                        {
                            // Sadly we have to cater for existing applications that never had this page as part of an Blind Assessor check
                            if (await ShouldGetManagementHierarchFinancialPage(applicationId))
                            {
                                // Move to injected page which shows Financial information to Assessor/Moderator
                                page.NextPageId = RoatpWorkflowPageIds.DeliveringApprenticeshipTraining.ManagementHierarchy_Financial;
                            }
                        }
                    }
                }
            }

            return(page);
        }
        private async Task <AssessorPage> GetManagementHierarchFinancialPage(Guid applicationId)
        {
            AssessorPage page = null;

            var qnaSection = await _qnaApiClient.GetSectionBySectionNo(applicationId, RoatpWorkflowSequenceIds.FinancialEvidence, RoatpWorkflowSectionIds.FinancialEvidence.YourOrganisationsFinancialEvidence);

            var qnaPage = qnaSection?.QnAData.Pages.FirstOrDefault(p => p.PageId == RoatpWorkflowPageIds.YourOrganisationsFinancialEvidence.FinancialEvidence_Other ||
                                                                   p.PageId == RoatpWorkflowPageIds.YourOrganisationsFinancialEvidence.FinancialEvidence_CompanyOrCharity ||
                                                                   p.PageId == RoatpWorkflowPageIds.YourOrganisationsFinancialEvidence.FinancialEvidence_SoleTraderOrPartnership);

            if (qnaPage != null)
            {
                // Modify the qnaPage so it shows only relevant questions to the assessor and has an appropriate page id
                qnaPage.Questions = qnaPage.Questions.Where(p => p.QuestionTag == RoatpWorkflowQuestionTags.Turnover || p.QuestionTag == RoatpWorkflowQuestionTags.AverageNumberofFTEEmployees).ToList();
                qnaPage.PageId    = RoatpWorkflowPageIds.DeliveringApprenticeshipTraining.ManagementHierarchy_Financial;

                page = qnaPage.ToAssessorPage(_assessorLookupService, applicationId, RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining, RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.ManagementHierarchy);
            }

            return(page);
        }
Exemplo n.º 12
0
        private void HydrateSectorDetailsWithFullNameJobRoleTimeInRole(AssessorPage page4NameRoleExperience,
                                                                       AssessorSectorDetails sectorDetails, SectorQuestionIds sectorPageIds)
        {
            if (page4NameRoleExperience?.Answers == null || !page4NameRoleExperience.Answers.Any())
            {
                return;
            }
            sectorDetails.FirstName =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.FirstName);
            sectorDetails.LastName =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.LastName);
            sectorDetails.JobRole =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.JobRole);
            sectorDetails.TimeInRole =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.TimeInRole);

            sectorDetails.IsPartOfAnyOtherOrganisations =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.IsPartOfAnyOtherOrganisations);

            sectorDetails.OtherOrganisations = _extractAnswerValueService.ExtractFurtherQuestionAnswerValueFromQuestionId(page4NameRoleExperience,
                                                                                                                          sectorPageIds.IsPartOfAnyOtherOrganisations);
            var dateOfBirth =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.DateOfBirth);

            sectorDetails.DateOfBirth = DateOfBirthFormatter.GetMonthYearDescription(dateOfBirth);
            sectorDetails.Email       =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.Email);
            sectorDetails.ContactNumber =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(page4NameRoleExperience.Answers,
                                                                            sectorPageIds.ContactNumber);
        }
Exemplo n.º 13
0
        public static AssessorPage ToAssessorPage(this Page qnaPage, IAssessorLookupService assessorLookupService, Guid applicationId, int sequenceNumber, int sectionNumber)
        {
            var page = new AssessorPage
            {
                ApplicationId  = applicationId,
                SequenceNumber = sequenceNumber,
                SectionNumber  = sectionNumber,
                PageId         = qnaPage.PageId,

                DisplayType = qnaPage.DisplayType,
                Caption     = assessorLookupService?.GetTitleForSequence(sequenceNumber),
                Heading     = assessorLookupService?.GetTitleForPage(qnaPage.PageId) ?? qnaPage.LinkTitle,
                Title       = qnaPage.Title,
                BodyText    = qnaPage.BodyText
            };

            if (qnaPage.Questions != null && qnaPage.Questions.Any())
            {
                page.Questions = new List <AssessorQuestion>(qnaPage.Questions.Select(q => { return(q.ToAssessorQuestion(assessorLookupService)); }));
            }

            if (qnaPage.PageOfAnswers != null && qnaPage.PageOfAnswers.Any())
            {
                var qnaAnswers = qnaPage.PageOfAnswers.SelectMany(pao => pao.Answers);
                page.Answers = qnaAnswers.ToLookup(a => a.QuestionId).Select(group =>
                {
                    return(new AssessorAnswer {
                        QuestionId = group.Key, Value = group.FirstOrDefault()?.Value
                    });
                }).ToList();
            }

            page.GuidanceInformation = GetGuidanceInformation(page);

            return(page);
        }
        public async Task GetSectorsViewModel_returns_ViewModel()
        {
            int    sequenceNumber = SequenceIds.DeliveringApprenticeshipTraining;
            int    sectionNumber  = SectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees;
            string pageId         = RoatpWorkflowPageIds.YourSectorsAndEmployeesStartingPageId;
            var    userId         = _user.UserId();

            _chosenSectors.Add(new AssessorSector {
                PageId = "1", Title = "page 1 title", Status = "Pass"
            });
            _chosenSectors.Add(new AssessorSector {
                PageId = "2", Title = "page 2 title"
            });
            _ukprn             = "1234";
            _organisationName  = "org name";
            _providerRouteName = "Main";

            var application = new Apply
            {
                ApplicationId = _applicationId,
                ApplyData     = new ApplyData
                {
                    ApplyDetails = new ApplyDetails
                    {
                        UKPRN                  = _ukprn,
                        OrganisationName       = _organisationName,
                        ProviderRouteName      = _providerRouteName,
                        ApplicationSubmittedOn = _applicationSubmittedOn
                    }
                }
            };

            var assessorPage = new AssessorPage
            {
                Caption = _assessorPageCaption
            };

            _applicationApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(application);

            _assessorApiClient.Setup(x => x.GetAssessorPage(_applicationId, sequenceNumber, sectionNumber, pageId))
            .ReturnsAsync(assessorPage);

            _assessorApiClient.Setup(x => x.GetAssessorSectors(_applicationId, userId))
            .ReturnsAsync(_chosenSectors);


            var request         = new GetSectorsRequest(_applicationId, userId);
            var actualViewModel = await _orchestrator.GetSectorsViewModel(request);

            Assert.That(actualViewModel, Is.Not.Null);

            var expectedViewModel = new ApplicationSectorsViewModel
            {
                ApplyLegalName   = _organisationName,
                Ukprn            = _ukprn,
                SelectedSectors  = _chosenSectors,
                ApplicationId    = _applicationId,
                ApplicationRoute = _providerRouteName,
                SubmittedDate    = _applicationSubmittedOn,
                Caption          = _assessorPageCaption,
                Heading          = SectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployeesHeading
            };

            Assert.AreEqual(JsonConvert.SerializeObject(actualViewModel), JsonConvert.SerializeObject(expectedViewModel));
        }
        public void SetUp()
        {
            var logger = new Mock <ILogger <Web.Services.AssessorSectionReviewOrchestrator> >();

            _applyApiClient    = new Mock <IRoatpApplicationApiClient>();
            _assessorApiClient = new Mock <IRoatpAssessorApiClient>();

            var supplementaryInformationService = new Mock <ISupplementaryInformationService>();

            _orchestrator = new Web.Services.AssessorSectionReviewOrchestrator(logger.Object, _applyApiClient.Object, _assessorApiClient.Object, supplementaryInformationService.Object);

            _userId = _user.UserId();

            _application = new Apply
            {
                ApplicationId = _applicationId,
                ApplyData     = new ApplyData
                {
                    ApplyDetails = new ApplyDetails {
                    }
                },
                Assessor1UserId = _userId
            };

            _contact = new Contact
            {
                Email      = _userId,
                GivenNames = _user.GivenName(),
                FamilyName = _user.Surname()
            };

            _assessorPage = new AssessorPage
            {
                ApplicationId  = _applicationId,
                SequenceNumber = _sequenceNumber,
                SectionNumber  = _sectionNumber,
                PageId         = _pageId,
                Questions      = new List <Question>
                {
                    new Question {
                        QuestionId = "Q1"
                    }
                },
                Answers = new List <Answer>
                {
                    new Answer {
                        QuestionId = "Q1", Value = "value"
                    }
                }
            };

            _pageReviewOutcome = new AssessorPageReviewOutcome
            {
                ApplicationId  = _applicationId,
                SequenceNumber = _sequenceNumber,
                SectionNumber  = _sectionNumber,
                PageId         = _pageId,
                UserId         = _userId,
                Status         = AssessorPageReviewStatus.Pass
            };

            _applyApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application);

            _applyApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact);

            _assessorApiClient.Setup(x => x.GetAssessorPage(_applicationId, _sequenceNumber, _sectionNumber, _pageId))
            .ReturnsAsync(_assessorPage);

            _assessorApiClient.Setup(x => x.GetAssessorPageReviewOutcomesForSection(_applicationId, _sequenceNumber, _sectionNumber, _userId))
            .ReturnsAsync(new List <AssessorPageReviewOutcome> {
                _pageReviewOutcome
            });

            _assessorApiClient.Setup(x => x.GetAssessorPageReviewOutcome(_applicationId, _sequenceNumber, _sectionNumber, _pageId, _userId))
            .ReturnsAsync(_pageReviewOutcome);
        }
Exemplo n.º 16
0
        public async Task <AssessorSectorDetails> GetSectorDetails(Guid applicationId, string pageId)
        {
            var sectorDetails = new AssessorSectorDetails
            {
                SectorName = _lookupService.GetSectorNameForPage(pageId)
            };

            var sectorPageIds = _lookupService.GetSectorQuestionIdsForSectorPageId(pageId);

            if (sectorPageIds == null)
            {
                return(null);
            }

            var sequenceNumber = RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining;
            var sectionNumber  = RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees;
            var pageExperienceQualificationsMemberships = new AssessorPage();
            var pageTypeOfTraining = new AssessorPage();

            var pageWhatStandardsOffered = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber, pageId);

            if (pageWhatStandardsOffered == null)
            {
                return(null);
            }

            HydrateSectorDetailsWithWhatStandardsOffered(pageWhatStandardsOffered, sectorDetails, sectorPageIds);

            var pageHowManyStarts = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber, pageWhatStandardsOffered.NextPageId);

            HydrateSectorDetailsWithHowManyStarts(pageHowManyStarts, sectorDetails, sectorPageIds);

            var pageHowManyEmployees = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber, pageHowManyStarts.NextPageId);

            HydrateSectorDetailsWithHowManyEmployees(pageHowManyEmployees, sectorDetails, sectorPageIds);

            var pageNameRoleExperience = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber, pageHowManyEmployees.NextPageId);

            HydrateSectorDetailsWithFullNameJobRoleTimeInRole(pageNameRoleExperience, sectorDetails, sectorPageIds);

            if (!string.IsNullOrEmpty(pageNameRoleExperience.NextPageId))
            {
                pageExperienceQualificationsMemberships = await _pageService.GetPage(applicationId, sequenceNumber,
                                                                                     sectionNumber, pageNameRoleExperience.NextPageId);

                HydrateSectorDetailsWithQualificationsAwardingBodiesAndTradeMemberships(sectorDetails, pageExperienceQualificationsMemberships, sectorPageIds);
            }

            if (!string.IsNullOrEmpty(pageExperienceQualificationsMemberships.NextPageId))
            {
                pageTypeOfTraining = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber,
                                                                pageExperienceQualificationsMemberships.NextPageId);

                HydrateSectorDetailsWhatTypeOfTrainingDelivered(sectorDetails, pageTypeOfTraining, sectorPageIds);
            }

            if (!string.IsNullOrEmpty(pageTypeOfTraining.NextPageId))
            {
                var pageHowDeliveredAndDuration = await _pageService.GetPage(applicationId, sequenceNumber, sectionNumber,
                                                                             pageTypeOfTraining.NextPageId);

                HydrateSectorDetailsWithHowTrainingIsDeliveredDetails(pageHowDeliveredAndDuration, sectorPageIds, sectorDetails);
            }

            return(sectorDetails);
        }
Exemplo n.º 17
0
        private void HydrateSectorDetailsWithQualificationsAwardingBodiesAndTradeMemberships(AssessorSectorDetails sectorDetails,
                                                                                             AssessorPage page5ExperienceQualificationsMemberships, SectorQuestionIds sectorPageIds)
        {
            if (page5ExperienceQualificationsMemberships?.Answers == null || !page5ExperienceQualificationsMemberships.Answers.Any())
            {
                return;
            }
            sectorDetails.ExperienceOfDelivering =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships.Answers,
                    sectorPageIds.ExperienceOfDelivering);

            sectorDetails.WhereDidTheyGainThisExperience =
                _extractAnswerValueService.ExtractFurtherQuestionAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships,
                    sectorPageIds.ExperienceOfDelivering);

            sectorDetails.DoTheyHaveQualifications = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                page5ExperienceQualificationsMemberships.Answers, sectorPageIds.DoTheyHaveQualifications);

            sectorDetails.WhatQualificationsDoTheyHave =
                _extractAnswerValueService.ExtractFurtherQuestionAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships,
                    sectorPageIds.DoTheyHaveQualifications);

            sectorDetails.ApprovedByAwardingBodies = _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                page5ExperienceQualificationsMemberships.Answers, sectorPageIds.AwardingBodies);

            sectorDetails.NamesOfAwardingBodies =
                _extractAnswerValueService.ExtractFurtherQuestionAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships,
                    sectorPageIds.AwardingBodies);


            sectorDetails.DoTheyHaveTradeBodyMemberships =
                _extractAnswerValueService.ExtractAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships.Answers, sectorPageIds.TradeMemberships);

            sectorDetails.NamesOfTradeBodyMemberships =
                _extractAnswerValueService.ExtractFurtherQuestionAnswerValueFromQuestionId(
                    page5ExperienceQualificationsMemberships,
                    sectorPageIds.TradeMemberships);
        }