private static List <OrganisationPersonnel> ExtractTabularAnswerOrganisationPersonnel(List <SubmittedApplicationAnswer> answers, Guid organisationId, string questionId, PersonnelType personnelType) { var submittedAnswersOrganisationPersonnel = answers.Where(answer => answer.QuestionId == questionId).GroupBy(a => a.RowNumber).ToList(); var organisationPersonnel = new List <OrganisationPersonnel>(); foreach (var person in submittedAnswersOrganisationPersonnel) { var orgPersonnel = new OrganisationPersonnel { OrganisationId = organisationId, PersonnelType = personnelType, }; foreach (var record in person) { switch (record.ColumnHeading) { case "Name": orgPersonnel.Name = record.Answer; break; case "Date of birth": var dob = Convert.ToDateTime(record.Answer); orgPersonnel.DateOfBirthMonth = dob.Month; orgPersonnel.DateOfBirthYear = dob.Year; break; } } organisationPersonnel.Add(orgPersonnel); } return(organisationPersonnel); }
private static List <OrganisationPersonnel> ExtractSoleTraderOrganisationPersonnel(List <SubmittedApplicationAnswer> answers, Guid organisationId, string questionId, PersonnelType personnelType) { var submittedAnswersOrganisationPersonnel = answers.Where(answer => answer.QuestionId == questionId).GroupBy(a => a.RowNumber).ToList(); var organisationPersonnel = new List <OrganisationPersonnel>(); var submittedAnswersOrganisationSoleTrader = answers.Where(answer => answer.QuestionId == QuestionIdOrganisationNameSoleTrade); var submittedAnswersOrganisationTypeSoleTraderOrPartnership = answers.Where(answer => answer.QuestionId == QuestionIdSoleTraderOrPartnership); if (submittedAnswersOrganisationPersonnel.Count > 0 && submittedAnswersOrganisationTypeSoleTraderOrPartnership.Any()) { foreach (var person in submittedAnswersOrganisationPersonnel) { var orgPersonnel = new OrganisationPersonnel { OrganisationId = organisationId, PersonnelType = personnelType, Name = submittedAnswersOrganisationSoleTrader.FirstOrDefault()?.Answer }; foreach (var record in person) { if (record.Answer == null) { continue; } var dobArray = record.Answer.Split(","); if (dobArray.Length != 2) { continue; } orgPersonnel.DateOfBirthMonth = int.Parse(dobArray[0]); orgPersonnel.DateOfBirthYear = int.Parse(dobArray[1]); } organisationPersonnel.Add(orgPersonnel); } } else if (submittedAnswersOrganisationTypeSoleTraderOrPartnership.Any() && submittedAnswersOrganisationTypeSoleTraderOrPartnership.FirstOrDefault()?.Answer == SoleTraderType) { var orgPersonnel = new OrganisationPersonnel { OrganisationId = organisationId, PersonnelType = personnelType, Name = submittedAnswersOrganisationSoleTrader.FirstOrDefault()?.Answer }; organisationPersonnel.Add(orgPersonnel); } return(organisationPersonnel); }