private InspectionsStatusCode ProcessLineIntoDetailsAsDetailOrError(ExcelWorksheet keyWorksheet, SpreadsheetDetails spreadsheetDetails, int lineNumber, ICollection <InspectionOutcome> inspections, ICollection <InspectionError> errorSet) { var error = new InspectionError { LineNumber = lineNumber }; var ukprn = ProcessUkprnForError(Convert.ToString(keyWorksheet.Cells[lineNumber, spreadsheetDetails.UkPrnColumn].Value), error); var url = _processExcelFormulaToLink.GetLinkFromFormula( keyWorksheet.Cells[lineNumber, spreadsheetDetails.WebLinkColumn].Formula, keyWorksheet.Cells[lineNumber, spreadsheetDetails.WebLinkColumn].Text); var overallEffectiveness = ProcessOverallEffectivenessForError(Convert.ToString(keyWorksheet.Cells[lineNumber, spreadsheetDetails.OverallEffectivenessColumn]?.Value), error); var datePublished = ProcessDatePublishedForError(keyWorksheet.Cells[lineNumber, spreadsheetDetails.DatePublishedColumn], error); if (ukprn != null && overallEffectiveness != null && datePublished != null) { AddInspectionData((int)ukprn, url, datePublished, (OverallEffectiveness)overallEffectiveness, inspections); _logger.Debug($"Details processed successfully for line {lineNumber}: {ukprn}, {url}, {error.DatePublished}, {overallEffectiveness}"); return(InspectionsStatusCode.Success); } error.Website = url ?? string.Empty; errorSet.Add(error); _logger.Warn($"Details processed unsuccessfully for line {error.LineNumber}: '{error.Ukprn}', '{error.Website}', '{error.DatePublished}', '{error.OverallEffectiveness}'"); return(InspectionsStatusCode.ProcessedWithErrors); }
private static int?ProcessUkprnForError(string value, InspectionError error) { var ukprnString = value ?? string.Empty; error.Ukprn = ukprnString; int ukprn; if (int.TryParse(ukprnString, out ukprn)) { return(ukprn); } error.Message = error.Message + $@"Invalid value for ukprn [{error.Ukprn = ukprnString}]; "; return(null); }
private static DateTime?ProcessDatePublishedForError(ExcelRange cell, InspectionError error) { var datePublished = GetDateTimeValue(cell); if (datePublished != null) { error.DatePublished = datePublished == DateTime.MinValue ? "NULL" : datePublished.ToDdmmyyyyString(); } else { error.DatePublished = cell.Text; error.Message = error.Message + $@"Invalid value for Date Published [{error.DatePublished}]; "; } return(datePublished); }
private OverallEffectiveness?ProcessOverallEffectivenessForError(string value, InspectionError error) { var overallEffectivenessString = value; var overallEffectiveness = _overallEffectivenessProcessor.GetOverallEffectiveness(overallEffectivenessString); error.OverallEffectiveness = overallEffectivenessString; if (overallEffectiveness == null) { error.Message = error.Message + $@"Invalid value for Overall Effectiveness [{ error.OverallEffectiveness}]; "; } return(overallEffectiveness); }