Esempio n. 1
0
        public bool IsParentOf(ResourceTypeReference other)
        {
            return
                (StringComparer.OrdinalIgnoreCase.Equals(this.Namespace, other.Namespace) &&

                 // Parent should have N types, child should have N+1, first N types should be equal
                 this.Types.Length + 1 == other.Types.Length &&
                 Enumerable.SequenceEqual(this.Types, other.Types.Take(this.Types.Length), StringComparer.OrdinalIgnoreCase));
        }
Esempio n. 2
0
        public static ResourceTypeReference?TryCombine(ResourceTypeReference baseType, IEnumerable <string> typeSegments)
        {
            var types = new List <string>(baseType.Types);

            var bestVersion = baseType.ApiVersion;

            foreach (var typeSegment in typeSegments)
            {
                if (!TryParseSingleTypeSegment(typeSegment, out var type, out var version))
                {
                    return(null);
                }

                types.Add(type);

                if (!string.IsNullOrEmpty(version))
                {
                    bestVersion = version;
                }
            }

            return(new ResourceTypeReference(baseType.Namespace, types, bestVersion));
        }