public ErrorResult EnrichError(SpreadsheetWorkbook spreadsheetWorkbook, Exception e) { var formulaName = spreadsheetWorkbook.GetFormulaName(); if (e.GetType() == typeof(ExpressionParseException)) { var error = "Invalid expression found in tax formula [" + formulaName + "]. Check that separators and delimiters use the English locale."; return(new ErrorResult(formulaName, error, spreadsheetWorkbook.GetPresentation())); } if (e.Message.StartsWith("Circular Reference")) { var error = parseCircularReferenceException(e, formulaName); return(new ErrorResult(formulaName, error, spreadsheetWorkbook.GetPresentation())); } if ("Object reference not set to an instance of an object".Equals(e.Message) && StackTraceContains(e, "vLookup")) { return(new ErrorResult(formulaName, "Missing Lookup Table", spreadsheetWorkbook.GetPresentation())); } if ("No matches found".Equals(e.Message)) { var error = parseNoMatchException(e, formulaName); return(new ErrorResult(formulaName, error, spreadsheetWorkbook.GetPresentation())); } return(new ErrorResult(formulaName, e.Message, spreadsheetWorkbook.GetPresentation())); }
public ErrorResult EnrichError(SpreadsheetWorkbook spreadsheetWorkbook, Exception e) { var formulaName = spreadsheetWorkbook.GetFormulaName(); var error = _errorValidators .FirstOrDefault(ev => ev.Validate(e)) ?.ErrorMessage(e, formulaName) ?? e.Message; return(new ErrorResult(formulaName, error, spreadsheetWorkbook.GetPresentation())); }