Пример #1
0
 public AzResourceTypeLoader()
 {
     this.typeLoader          = new TypeLoader();
     this.resourceTypeFactory = new AzResourceTypeFactory();
     this.availableTypes      = typeLoader.GetIndexedTypes().Resources.ToImmutableDictionary(
         kvp => ResourceTypeReference.Parse(kvp.Key),
         kvp => kvp.Value,
         ResourceTypeReferenceComparer.Instance);
     this.availableFunctions = typeLoader.GetIndexedTypes().Functions.ToImmutableDictionary(
         kvp => kvp.Key,
         kvp => kvp.Value.ToImmutableDictionary(
             x => x.Key,
             x => x.Value.ToImmutableArray(),
             StringComparer.OrdinalIgnoreCase),
         StringComparer.OrdinalIgnoreCase);
 }
Пример #2
0
 public AzResourceTypeLoader()
 {
     this.typeLoader          = new TypeLoader();
     this.resourceTypeFactory = new AzResourceTypeFactory();
     this.availableTypes      = typeLoader.GetIndexedTypes().Types.ToImmutableDictionary(
         kvp => ResourceTypeReference.Parse(kvp.Key),
         kvp => kvp.Value,
         ResourceTypeReferenceComparer.Instance);
 }
Пример #3
0
        private static IReadOnlyDictionary <ResourceTypeReference, TypeLocation> GetAvailableResourceTypes(ITypeLoader typeLoader)
        {
            var indexedTypes = typeLoader.GetIndexedTypes();

            return(indexedTypes.Types.ToDictionary(
                       kvp => ResourceTypeReference.Parse(kvp.Key),
                       kvp => kvp.Value,
                       ResourceTypeReferenceComparer.Instance));
        }
Пример #4
0
        private static IReadOnlyDictionary <ResourceScope, IReadOnlyDictionary <ResourceTypeReference, TypeLocation> > GetAvailableResourceTypes(ITypeLoader typeLoader)
        {
            IReadOnlyDictionary <ResourceTypeReference, TypeLocation> ToResourceReferenceDictionary(IReadOnlyDictionary <string, TypeLocation> typeDict)
            => typeDict.ToDictionary(
                kvp => ResourceTypeReference.Parse(kvp.Key),
                kvp => kvp.Value,
                ResourceTypeReferenceComparer.Instance);

            var availableResourceTypes = new Dictionary <ResourceScope, IReadOnlyDictionary <ResourceTypeReference, TypeLocation> >();
            var indexedTypes           = typeLoader.GetIndexedTypes();

            availableResourceTypes[ResourceScope.Tenant]          = ToResourceReferenceDictionary(indexedTypes.Tenant);
            availableResourceTypes[ResourceScope.ManagementGroup] = ToResourceReferenceDictionary(indexedTypes.ManagementGroup);
            availableResourceTypes[ResourceScope.Subscription]    = ToResourceReferenceDictionary(indexedTypes.Subscription);
            availableResourceTypes[ResourceScope.ResourceGroup]   = ToResourceReferenceDictionary(indexedTypes.ResourceGroup);
            availableResourceTypes[ResourceScope.Resource]        = ToResourceReferenceDictionary(indexedTypes.Extension);

            return(availableResourceTypes);
        }
Пример #5
0
        private static IReadOnlyDictionary <ResourceTypeReference, TypeLocation> GetAvailableResourceTypes(ITypeLoader typeLoader)
        {
            var typeDict     = new Dictionary <ResourceTypeReference, TypeLocation>(ResourceTypeReferenceComparer.Instance);
            var indexedTypes = typeLoader.GetIndexedTypes();

            void ToResourceReferenceDictionary(IReadOnlyDictionary <string, TypeLocation> inputDict)
            {
                foreach (var(key, value) in inputDict)
                {
                    typeDict[ResourceTypeReference.Parse(key)] = value;
                }
            }

            ToResourceReferenceDictionary(indexedTypes.Tenant);
            ToResourceReferenceDictionary(indexedTypes.ManagementGroup);
            ToResourceReferenceDictionary(indexedTypes.Subscription);
            ToResourceReferenceDictionary(indexedTypes.ResourceGroup);
            ToResourceReferenceDictionary(indexedTypes.Extension);

            return(typeDict);
        }