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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
            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);
            }