private void AddSequenceTitlesToSequences(List <AssessorSequence> sequencesWithModerationFails)
 {
     foreach (var sequence in sequencesWithModerationFails)
     {
         sequence.SequenceTitle =
             _assessorLookupService.GetTitleForSequence(sequence.SequenceNumber)?.Replace("checks", string.Empty, StringComparison.InvariantCultureIgnoreCase).Trim();
     }
 }
        private AssessorSequence GetSequence(int sequenceNumber, IEnumerable <ApplicationSection> qnaSectionsForSequence, ApplySequence applySequence)
        {
            AssessorSequence sequence = null;

            if (IsValidSequenceNumber(sequenceNumber) && qnaSectionsForSequence != null)
            {
                var sectionsToExclude = GetWhatYouWillNeedSectionsForSequence(sequenceNumber);
                var qnaSections       = qnaSectionsForSequence.Where(sec => sec.SequenceId == sequenceNumber && !sectionsToExclude.Contains(sec.SectionId));

                sequence = new AssessorSequence
                {
                    SequenceNumber = sequenceNumber,
                    SequenceTitle  = _lookupService.GetTitleForSequence(sequenceNumber),
                    Sections       = qnaSections.Select(sec =>
                    {
                        return(new AssessorSection {
                            SequenceNumber = sec.SequenceId, SectionNumber = sec.SectionId, LinkTitle = sec.Title, Status = string.Empty, Pages = sec.QnAData?.Pages
                        });
                    })
                                     .OrderBy(sec => sec.SectionNumber).ToList()
                };

                if (applySequence != null && applySequence.SequenceNo == sequenceNumber && applySequence.Sections != null)
                {
                    foreach (var section in sequence.Sections)
                    {
                        var applySection = applySequence.Sections.FirstOrDefault(sec => sec.SectionNo == section.SectionNumber);

                        if (applySequence.NotRequired || applySection?.NotRequired == true)
                        {
                            section.Status = AssessorReviewStatus.NotRequired;
                        }
                    }
                }
            }

            return(sequence);
        }
예제 #3
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);
        }