private void WriteReferralsToSheet(OpportunityReportDto dto, OpenXmlElement sheetData) { var rowIndex = 3; foreach (var referral in dto.ReferralItems) { var row = new Row { RowIndex = (uint)rowIndex }; row.AppendChild(SpreadsheetExtensions.CreateTextCell(1, rowIndex, referral.Workplace)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(2, rowIndex, referral.JobRole)); row.AppendChild(int.TryParse(referral.PlacementsDetail, out var placements) ? SpreadsheetExtensions.CreateTextCell(3, rowIndex, placements) : SpreadsheetExtensions.CreateTextCell(3, rowIndex, referral.PlacementsDetail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(4, rowIndex, referral.ProviderNameForReport)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(5, rowIndex, referral.ProviderVenueTownAndPostcode)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(6, rowIndex, $"{referral.DistanceFromEmployer:#0.0} miles")); row.AppendChild(SpreadsheetExtensions.CreateTextCell(7, rowIndex, referral.PrimaryContact)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(8, rowIndex, referral.PrimaryContactEmail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(9, rowIndex, referral.PrimaryContactPhone)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(10, rowIndex, referral.SecondaryContact)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(11, rowIndex, referral.SecondaryContactEmail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(12, rowIndex, referral.SecondaryContactPhone)); sheetData.AppendChild(row); rowIndex++; } }
private void WriteProvidersToSheet(ProviderProximityReportDto dto, OpenXmlElement sheetData) { var rows = sheetData.Descendants <Row>().ToList(); var cells = rows[0].Descendants <Cell>().ToList(); var rowIndex = 3; if (dto.SkillAreas.Any()) { var skillsHeaderBuilder = new StringBuilder(); for (var i = 0; i < dto.SkillAreas.Count; i++) { skillsHeaderBuilder.Append(dto.SkillAreas[i]); if (i < dto.SkillAreas.Count - 1) { skillsHeaderBuilder.Append("; "); } } cells[2].UpdateTextCell(skillsHeaderBuilder.ToString()); rowIndex = 5; cells = rows[1].Descendants <Cell>().ToList(); } cells[2].UpdateTextCell($"Distance from {dto.Postcode}"); foreach (var provider in dto.Providers) { foreach (var route in provider.Routes) { foreach (var qualification in route.QualificationShortTitles) { var row = new Row { RowIndex = (uint)rowIndex }; row.AppendChild(SpreadsheetExtensions.CreateTextCell(1, rowIndex, provider.ProviderName)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(2, rowIndex, $"{provider.ProviderVenueTown} {provider.ProviderVenuePostcode}")); row.AppendChild(SpreadsheetExtensions.CreateTextCell(3, rowIndex, $"{provider.Distance:#0.0} miles")); row.AppendChild(SpreadsheetExtensions.CreateTextCell(4, rowIndex, route.RouteName)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(5, rowIndex, qualification)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(6, rowIndex, provider.PrimaryContact)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(7, rowIndex, provider.PrimaryContactEmail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(8, rowIndex, provider.PrimaryContactPhone)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(9, rowIndex, provider.SecondaryContact)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(10, rowIndex, provider.SecondaryContactEmail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(11, rowIndex, provider.SecondaryContactPhone)); sheetData.AppendChild(row); rowIndex++; } } } }
private void WriteProvisionGapsToSheet(OpportunityReportDto dto, OpenXmlElement sheetData) { var rowIndex = 3; foreach (var provisionGap in dto.ProvisionGapItems) { var row = new Row { RowIndex = (uint)rowIndex }; row.AppendChild(SpreadsheetExtensions.CreateTextCell(1, rowIndex, provisionGap.Workplace)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(2, rowIndex, provisionGap.JobRole)); row.AppendChild(int.TryParse(provisionGap.PlacementsDetail, out var placements) ? SpreadsheetExtensions.CreateTextCell(3, rowIndex, placements) : SpreadsheetExtensions.CreateTextCell(3, rowIndex, provisionGap.PlacementsDetail)); row.AppendChild(SpreadsheetExtensions.CreateTextCell(4, rowIndex, provisionGap.Reason)); sheetData.AppendChild(row); rowIndex++; } }