public async Task ExtractAnswersForApplication_Contains_Expected_Questions() { var firstPage = _sections[0].QnAData.Pages[0]; var firstPageQuestion = firstPage.Questions[0]; var expectedQuestion = new SubmittedApplicationAnswer { ApplicationId = _application.ApplicationId, PageId = firstPage.PageId, QuestionId = firstPageQuestion.QuestionId, QuestionType = firstPageQuestion.Input.Type }; var extractedQuestions = await _sut.ExtractAnswersForApplication(_application.ApplicationId); var actualQuestion = extractedQuestions.FirstOrDefault(x => x.PageId == expectedQuestion.PageId && x.QuestionId == expectedQuestion.QuestionId); _qnaApiClient.Verify(x => x.GetAllSectionsForApplication(_application.ApplicationId), Times.Once); Assert.IsNotNull(actualQuestion); Assert.AreEqual(expectedQuestion.ApplicationId, actualQuestion.ApplicationId); Assert.AreEqual(expectedQuestion.PageId, actualQuestion.PageId); Assert.AreEqual(expectedQuestion.QuestionId, actualQuestion.QuestionId); Assert.AreEqual(expectedQuestion.QuestionType, actualQuestion.QuestionType); }
public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId, Question question, string checkBoxListAnswer) { var answers = new List <SubmittedApplicationAnswer>(); if (question?.Input?.Options != null && !string.IsNullOrEmpty(checkBoxListAnswer)) { var questionId = question.QuestionId; var questionType = question.Input?.Type; foreach (var option in question.Input.Options) { if (checkBoxListAnswer.Contains(option.Value)) { var answer = new SubmittedApplicationAnswer { ApplicationId = applicationId, SequenceNumber = sequenceNumber, SectionNumber = sectionNumber, PageId = pageId, QuestionId = questionId, QuestionType = questionType, Answer = option.Value }; answers.Add(answer); } } } return(answers); }
public async Task ExtractAnswersForApplication_Contains_Expected_QuestionAnswers() { var firstSection = _sections[0]; var firstPage = firstSection.QnAData.Pages[0]; var firstPageQuestion = firstPage.Questions[0]; var firstPageAnswer = firstPage.PageOfAnswers[0].Answers[0]; var expectedAnswer = new SubmittedApplicationAnswer { Answer = firstPageAnswer.Value, ColumnHeading = null }; var extractedQuestions = await _sut.ExtractAnswersForApplication(_application.ApplicationId); var actualAnswer = extractedQuestions.FirstOrDefault(x => x.PageId == firstPage.PageId && x.QuestionId == firstPageQuestion.QuestionId); _qnaApiClient.Verify(x => x.GetAllSectionsForApplication(_application.ApplicationId), Times.Once); Assert.IsNotNull(actualAnswer); Assert.AreEqual(expectedAnswer.Answer, actualAnswer.Answer); Assert.AreEqual(expectedAnswer.ColumnHeading, actualAnswer.ColumnHeading); Assert.AreEqual(expectedAnswer.RowNumber, actualAnswer.RowNumber); Assert.AreEqual(expectedAnswer.ColumnNumber, actualAnswer.ColumnNumber); }
public ApplyFileExtractRequest(SubmittedApplicationAnswer submittedApplicationAnswer) { ApplicationId = submittedApplicationAnswer.ApplicationId; PageId = submittedApplicationAnswer.PageId; QuestionId = submittedApplicationAnswer.QuestionId; SectionNumber = submittedApplicationAnswer.SectionNumber; SequenceNumber = submittedApplicationAnswer.SequenceNumber; Filename = submittedApplicationAnswer.Answer; }
public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, int sequenceNumber, int sectionNumber, string pageId, Question question, TabularData tabularData) { var answers = new List <SubmittedApplicationAnswer>(); if (question?.Input != null && tabularData?.DataRows != null && tabularData?.HeadingTitles != null) { var questionId = question.QuestionId; var questionType = question.Input.Type; for (int row = 0; row < tabularData.DataRows.Count; row++) { var dataRow = tabularData.DataRows[row]; if (dataRow?.Columns is null) { continue; } for (int column = 0; column < dataRow.Columns.Count; column++) { string columnAnswer = dataRow.Columns[column]; string columnHeading = tabularData.HeadingTitles.ElementAtOrDefault(column); if (string.IsNullOrEmpty(columnAnswer)) { continue; } var answer = new SubmittedApplicationAnswer { ApplicationId = applicationId, SequenceNumber = sequenceNumber, SectionNumber = sectionNumber, PageId = pageId, QuestionId = questionId, QuestionType = questionType, Answer = columnAnswer, ColumnHeading = columnHeading, RowNumber = row, ColumnNumber = column }; answers.Add(answer); } } } return(answers); }
public static SubmittedApplicationAnswer GetAnswer(Guid applicationId, string pageId, Question question, string submittedAnswer) { var answer = default(SubmittedApplicationAnswer); if (question?.Input != null && !string.IsNullOrEmpty(submittedAnswer)) { var questionId = question.QuestionId; var questionType = question.Input.Type; answer = new SubmittedApplicationAnswer { ApplicationId = applicationId, PageId = pageId, QuestionId = questionId, QuestionType = questionType, Answer = submittedAnswer }; } return(answer); }
public static List <SubmittedApplicationAnswer> GetAnswers(Guid applicationId, string pageId, Question question, TabularData tabularData) { var answers = new List <SubmittedApplicationAnswer>(); if (question?.Input != null && tabularData?.DataRows != null && tabularData?.HeadingTitles != null) { var questionId = question.QuestionId; var questionType = question.Input.Type; foreach (var row in tabularData.DataRows) { for (int column = 0; column < row.Columns.Count; column++) { string columnAnswer = row.Columns[column]; string columnHeading = tabularData.HeadingTitles.ElementAtOrDefault(column); if (string.IsNullOrEmpty(columnAnswer)) { continue; } var answer = new SubmittedApplicationAnswer { ApplicationId = applicationId, PageId = pageId, QuestionId = questionId, QuestionType = questionType, Answer = columnAnswer, ColumnHeading = columnHeading }; answers.Add(answer); } } } return(answers); }