public TexlError Error(DocumentErrorSeverity severity, TexlNode node, ErrorResourceKey errKey, params object[] args) { if (severity <= this.maximumSeverity) { return(errors.Error(severity, node, errKey, args)); } return(null); }
public TexlError(Token tok, DocumentErrorSeverity severity, ErrorResourceKey errKey, params object[] args) : base(null, null, DocumentErrorKind.AXL, severity, errKey, args) { Contracts.AssertValue(tok); Tok = tok; TextSpan = new Span(tok.VerifyValue().Span.Min, tok.VerifyValue().Span.Lim); _nameMapIDs = new List <string>(); }
public TexlError Error(DocumentErrorSeverity severity, TexlNode node, ErrorResourceKey errKey, params object[] args) { Contracts.AssertValue(node); Contracts.AssertValue(args); TexlError err = new TexlError(node, severity, errKey, args); CollectionUtils.Add(ref _errors, err); return(err); }
public TexlError(TexlNode node, DocumentErrorSeverity severity, ErrorResourceKey errKey, params object[] args) : base(null, null, DocumentErrorKind.AXL, severity, errKey, args) { Contracts.AssertValue(node); Contracts.AssertValue(node.Token); Node = node; Tok = node.Token; TextSpan = node.GetTextSpan(); _nameMapIDs = new List <string>(); }
public TexlError EnsureError(DocumentErrorSeverity severity, TexlNode node, ErrorResourceKey errKey, params object[] args) { Contracts.AssertValue(node); Contracts.AssertValue(args); if (!HasErrors(node, severity)) { return(Error(severity, node, errKey, args)); } return(null); }
internal BaseError(IDocumentError innerError, Exception internalException, DocumentErrorKind kind, DocumentErrorSeverity severity, ErrorResourceKey errKey, Span textSpan, IEnumerable <string> sinkTypeErrors, params object[] args) { Contracts.AssertValueOrNull(innerError); Contracts.AssertValueOrNull(args); Contracts.AssertValueOrNull(internalException); Contracts.AssertValueOrNull(textSpan); Contracts.AssertValueOrNull(sinkTypeErrors); InnerError = innerError; ErrorKind = kind; Entity = string.Empty; PropertyName = string.Empty; Parent = string.Empty; Severity = severity; InternalException = internalException; TextSpan = textSpan; SinkTypeErrors = sinkTypeErrors; MessageKey = errKey.Key; MessageArgs = args; // We expect errKey to be the key for an error resource object within string resources. // We fall back to using a basic content string within string resources, for errors // that haven't yet been converted to an ErrorResource in the Resources.pares file. ErrorResource errorResource; string shortMessage; string longMessage; if (!StringResources.TryGetErrorResource(errKey, out errorResource)) { errorResource = null; shortMessage = StringResources.Get(errKey.Key); longMessage = null; } else { shortMessage = errorResource.GetSingleValue(ErrorResource.ShortMessageTag); Contracts.AssertValue(shortMessage); longMessage = errorResource.GetSingleValue(ErrorResource.LongMessageTag); } ShortMessage = FormatMessage(shortMessage, args); LongMessage = FormatMessage(longMessage, args); HowToFixMessages = errorResource?.GetValues(ErrorResource.HowToFixTag) ?? GetHowToFix(errKey.Key); WhyToFixMessage = errorResource?.GetSingleValue(ErrorResource.WhyToFixTag) ?? string.Empty; Links = errorResource?.HelpLinks; }
public bool HasErrorsInTree(TexlNode rootNode, DocumentErrorSeverity severity = DocumentErrorSeverity.Suggestion) { Contracts.AssertValue(rootNode); if (CollectionUtils.Size(_errors) == 0) { return(false); } foreach (var err in _errors) { if (err.Node.InTree(rootNode) && err.Severity >= severity) { return(true); } } return(false); }
/// <summary> /// PowerFx classifies diagnostics by <see cref="DocumentErrorSeverity"/>, LSP classifies them by /// <see cref="DiagnosticSeverity"/>. This method maps the former to the latter. /// </summary> /// <param name="severity"> /// <see cref="DocumentErrorSeverity"/> which will be mapped to the LSP eequivalent. /// </param> /// <returns> /// <see cref="DiagnosticSeverity"/> equivalent to <see cref="DocumentErrorSeverity"/> /// </returns> private DiagnosticSeverity DocumentSeverityToDiagnosticSeverityMap(DocumentErrorSeverity severity) => severity switch {
public TexlError Error(DocumentErrorSeverity severity, TexlNode node, ErrorResourceKey errKey, params object[] args) { return(null); }
private static DateTime?GetDate(string elementId, JObject nittyGritty, Document document, DocumentErrorSeverity severity = DocumentErrorSeverity.Warning) { string dateAsString; try { dateAsString = nittyGritty[elementId]["text"].ToString(); } catch (NullReferenceException) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0006", ErrorSeverity = severity, ErrorMessage = SafeString($"GetDate() Specified Element {elementId} is null") }); return(null); } catch (Exception) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0006", ErrorSeverity = severity, ErrorMessage = SafeString($"GetDate() Specified Element {elementId} does not exist in recognized output") }); return(null); } DateTime dateValue; if (DateTime.TryParse(dateAsString, out dateValue)) { return(dateValue); } else { string safeDateAsString = dateAsString.Replace("'", ParsingConstants.IllegalCharacterMarker); document.Errors.Add(new DocumentError { ErrorCode = "PRE0007", ErrorSeverity = severity, ErrorMessage = SafeString($"GetDate() Specified Element {elementId} does not contain a valid date: TaxDate={dateAsString}") }); return(null); } }
private static Decimal?GetNumber(string elementId, JObject nittyGritty, Document document, DocumentErrorSeverity severity = DocumentErrorSeverity.Warning) { string numberAsString; try { numberAsString = nittyGritty[elementId]["text"].ToString(); } catch (NullReferenceException) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0002", ErrorSeverity = severity, ErrorMessage = SafeString($"GetNumber() Specified Element {elementId} is null") }); return(null); } catch (Exception) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0002", ErrorSeverity = severity, ErrorMessage = SafeString($"GetNumber() Specified Element {elementId} does not exist in recognized output") }); return(null); } if (numberAsString == null) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0003", ErrorSeverity = severity, ErrorMessage = SafeString($"GetNumber() {elementId} exists but its value is null") }); return(null); } if (Decimal.TryParse(numberAsString.Trim().Replace(" ", string.Empty), out decimal numberValue)) { if (numberValue == 0) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0004", ErrorSeverity = DocumentErrorSeverity.Warning, ErrorMessage = SafeString($"GetNumber() {elementId} exists but its value is zero") }); } return(numberValue); } else { document.Errors.Add(new DocumentError { ErrorCode = "PRE0005", ErrorSeverity = severity, ErrorMessage = SafeString($"GetNumber() {elementId} exists but cannot be parsed as a number={numberAsString}") }); return(null); } }
private static string GetString(string elementId, JObject nittyGritty, Document document, DocumentErrorSeverity severity = DocumentErrorSeverity.Warning) { string value; try { value = SafeString(nittyGritty[elementId]["text"].ToString()); } catch (NullReferenceException) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0001", ErrorSeverity = severity, ErrorMessage = SafeString($"GetString() Specified Element {elementId} is null") }); return(null); } catch (Exception) { document.Errors.Add(new DocumentError { ErrorCode = "PRE0001", ErrorSeverity = severity, ErrorMessage = SafeString($"GetString() Specified Element {elementId} does not exist in recognized output") }); return(null); } return(value); }
public LimitedSeverityErrorContainer(IErrorContainer errors, DocumentErrorSeverity maximumSeverity) { this.errors = errors; this.maximumSeverity = maximumSeverity; }
internal BaseError(IDocumentError innerError, Exception internalException, DocumentErrorKind kind, DocumentErrorSeverity severity, ErrorResourceKey errKey, params object[] args) : this(innerError, internalException, kind, severity, errKey, textSpan : null, sinkTypeErrors : null, args : args) { }