public override int GetHashCode(TagHelperRequiredAttributeDescriptor descriptor) { var hashCodeCombiner = HashCodeCombiner.Start(); hashCodeCombiner.Add(base.GetHashCode(descriptor)); hashCodeCombiner.Add(descriptor.Name, StringComparer.Ordinal); return(hashCodeCombiner.CombinedHash); }
public override bool Equals(TagHelperRequiredAttributeDescriptor descriptorX, TagHelperRequiredAttributeDescriptor descriptorY) { if (descriptorX == descriptorY) { return(true); } Assert.True(base.Equals(descriptorX, descriptorY)); Assert.Equal(descriptorX.Name, descriptorY.Name, StringComparer.Ordinal); return(true); }
private static TagHelperChunk GetViewComponentTagHelperChunk(string name, bool visitedTagHelperChunks) { var typeName = visitedTagHelperChunks ? $"{_testNamespace}.{_testClass}.{name}Type" : $"{name}Type"; var attribute = new TagHelperAttributeDescriptor { Name = "attribute", PropertyName = "Attribute", TypeName = typeof(string).FullName }; var requiredAttribute = new TagHelperRequiredAttributeDescriptor { Name = "Attribute" }; var tagHelperDescriptor = new TagHelperDescriptor { AssemblyName = $"{name}Assembly", TagName = name.ToLowerInvariant(), TypeName = typeName, Attributes = new[] { attribute }, RequiredAttributes = new[] { requiredAttribute } }; tagHelperDescriptor.PropertyBag.Add( ViewComponentTagHelperDescriptorConventions.ViewComponentNameKey, name); var tagHelperChunk = new TagHelperChunk( $"vc:{name.ToLowerInvariant()}", TagMode.SelfClosing, new List <TagHelperAttributeTracker>(), new[] { tagHelperDescriptor }); return(tagHelperChunk); }
private TagHelperRequiredAttributeDescriptor ParsePlainSelector(ErrorSink errorSink) { var nameEndIndex = _requiredAttributes.IndexOfAny(InvalidPlainAttributeNameCharacters, _index); string attributeName; var nameComparison = TagHelperRequiredAttributeNameComparison.FullMatch; if (nameEndIndex == -1) { attributeName = _requiredAttributes.Substring(_index); _index = _requiredAttributes.Length; } else { attributeName = _requiredAttributes.Substring(_index, nameEndIndex - _index); _index = nameEndIndex; if (_requiredAttributes[nameEndIndex] == RequiredAttributeWildcardSuffix) { nameComparison = TagHelperRequiredAttributeNameComparison.PrefixMatch; // Move past wild card _index++; } } TagHelperRequiredAttributeDescriptor descriptor = null; if (ValidateName(attributeName, targetingAttributes: true, errorSink: errorSink)) { descriptor = new TagHelperRequiredAttributeDescriptor { Name = attributeName, NameComparison = nameComparison }; } return(descriptor); }