private HashSet <RazorDiagnostic> Validate() { HashSet <RazorDiagnostic> diagnostics = null; if (string.IsNullOrWhiteSpace(Name)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidRestrictedChildNullOrWhitespace(_parent.GetDisplayName()); diagnostics ??= new(); diagnostics.Add(diagnostic); } else if (Name != TagHelperMatchingConventions.ElementCatchAllName) { foreach (var character in Name) { if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidRestrictedChild(_parent.GetDisplayName(), Name, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } return(diagnostics); }
private HashSet <RazorDiagnostic> Validate() { HashSet <RazorDiagnostic> diagnostics = null; if (string.IsNullOrWhiteSpace(Name)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeParameterNullOrWhitespace(_parent.Name); diagnostics ??= new(); diagnostics.Add(diagnostic); } else { foreach (var character in Name) { if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeParameterName( _parent.Name, Name, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } return(diagnostics); }
private HashSet <RazorDiagnostic> Validate() { HashSet <RazorDiagnostic> diagnostics = null; if (string.IsNullOrWhiteSpace(TagName)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedTagNameNullOrWhitespace(); diagnostics ??= new(); diagnostics.Add(diagnostic); } else if (TagName != TagHelperMatchingConventions.ElementCatchAllName) { foreach (var character in TagName) { if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedTagName(TagName, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } if (ParentTag != null) { if (string.IsNullOrWhiteSpace(ParentTag)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedParentTagNameNullOrWhitespace(); diagnostics ??= new(); diagnostics.Add(diagnostic); } else { foreach (var character in ParentTag) { if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedParentTagName(ParentTag, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } } return(diagnostics); }
private HashSet <RazorDiagnostic> Validate() { HashSet <RazorDiagnostic> diagnostics = null; if (string.IsNullOrWhiteSpace(Name)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedAttributeNameNullOrWhitespace(); diagnostics ??= new(); diagnostics.Add(diagnostic); } else { var name = new StringSegment(Name); var isDirectiveAttribute = this.IsDirectiveAttribute(); if (isDirectiveAttribute && name.StartsWith("@", StringComparison.Ordinal)) { name = name.Subsegment(1); } else if (isDirectiveAttribute) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidRequiredDirectiveAttributeName(GetDisplayName(), Name); diagnostics ??= new(); diagnostics.Add(diagnostic); } for (var i = 0; i < name.Length; i++) { var character = name[i]; if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidTargetedAttributeName(Name, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } return(diagnostics); }
private HashSet <RazorDiagnostic> Validate() { // data-* attributes are explicitly not implemented by user agents and are not intended for use on // the server; therefore it's invalid for TagHelpers to bind to them. const string DataDashPrefix = "data-"; var isDirectiveAttribute = this.IsDirectiveAttribute(); HashSet <RazorDiagnostic> diagnostics = null; if (string.IsNullOrWhiteSpace(Name)) { if (IndexerAttributeNamePrefix == null) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeNullOrWhitespace( _parent.GetDisplayName(), GetDisplayName()); diagnostics ??= new(); diagnostics.Add(diagnostic); } } else { if (Name.StartsWith(DataDashPrefix, StringComparison.OrdinalIgnoreCase)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeNameStartsWith( _parent.GetDisplayName(), GetDisplayName(), Name); diagnostics ??= new(); diagnostics.Add(diagnostic); } StringSegment name = Name; if (isDirectiveAttribute && name.StartsWith("@", StringComparison.Ordinal)) { name = name.Subsegment(1); } else if (isDirectiveAttribute) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundDirectiveAttributeName( _parent.GetDisplayName(), GetDisplayName(), Name); diagnostics ??= new(); diagnostics.Add(diagnostic); } for (var i = 0; i < name.Length; i++) { var character = name[i]; if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeName( _parent.GetDisplayName(), GetDisplayName(), name.Value, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } if (IndexerAttributeNamePrefix != null) { if (IndexerAttributeNamePrefix.StartsWith(DataDashPrefix, StringComparison.OrdinalIgnoreCase)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributePrefixStartsWith( _parent.GetDisplayName(), GetDisplayName(), IndexerAttributeNamePrefix); diagnostics ??= new(); diagnostics.Add(diagnostic); } else if (IndexerAttributeNamePrefix.Length > 0 && string.IsNullOrWhiteSpace(IndexerAttributeNamePrefix)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributeNullOrWhitespace( _parent.GetDisplayName(), GetDisplayName()); diagnostics ??= new(); diagnostics.Add(diagnostic); } else { StringSegment indexerPrefix = IndexerAttributeNamePrefix; if (isDirectiveAttribute && indexerPrefix.StartsWith("@", StringComparison.Ordinal)) { indexerPrefix = indexerPrefix.Subsegment(1); } else if (isDirectiveAttribute) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundDirectiveAttributePrefix( _parent.GetDisplayName(), GetDisplayName(), indexerPrefix.Value); diagnostics ??= new(); diagnostics.Add(diagnostic); } for (var i = 0; i < indexerPrefix.Length; i++) { var character = indexerPrefix[i]; if (char.IsWhiteSpace(character) || HtmlConventions.IsInvalidNonWhitespaceHtmlCharacters(character)) { var diagnostic = RazorDiagnosticFactory.CreateTagHelper_InvalidBoundAttributePrefix( _parent.GetDisplayName(), GetDisplayName(), indexerPrefix.Value, character); diagnostics ??= new(); diagnostics.Add(diagnostic); } } } } return(diagnostics); }