示例#1
0
        /// <summary>
        /// Creates a new <see cref="ResourceId"/>
        /// </summary>
        /// <param name="resourceId">The fully-qualified resource Id</param>
        /// <param name="output">The resource Id</param>
        public static bool TryParse(string resourceId, out ResourceId output)
        {
            ResourceGroupLevelResourceId groupLevelResourceId;

            if (ResourceGroupLevelResourceId.TryParse(resourceId, out groupLevelResourceId))
            {
                output = groupLevelResourceId;
                return(true);
            }

            SubscriptionLevelResourceId subscriptionLevelResourceId;

            if (SubscriptionLevelResourceId.TryParse(resourceId, out subscriptionLevelResourceId))
            {
                output = subscriptionLevelResourceId;
                return(true);
            }

            TenantLevelResourceId tenantLevelResourceId;

            if (TenantLevelResourceId.TryParse(resourceId, out tenantLevelResourceId))
            {
                output = tenantLevelResourceId;
                return(true);
            }

            output = null;
            return(false);
        }
        /// <summary>
        /// Creates a new <see cref="ResourceGroupLevelResourceId"/>
        /// </summary>
        /// <param name="resourceId">The resource Id string</param>
        public static ResourceGroupLevelResourceId Parse(string resourceId)
        {
            ResourceGroupLevelResourceId output;

            if (!ResourceGroupLevelResourceId.TryParse(resourceId, out output))
            {
                throw new ArgumentException($"Unable to parse fully qualified resource id '{resourceId}'.", nameof(resourceId));
            }

            return(output);
        }
        /// <summary>
        /// Tries to create a new <see cref="ResourceGroupLevelResourceId"/>
        /// </summary>
        /// <param name="resourceId">The resource Id string</param>
        /// <param name="output">The resource Id output</param>
        public static bool TryParse(string resourceId, out ResourceGroupLevelResourceId output)
        {
            output = null;

            if (resourceId == null)
            {
                return(false);
            }

            var segments = resourceId.Trim('/').SplitRemoveEmpty('/');

            if (segments.Length < 5)
            {
                return(false);
            }

            if (!"subscriptions".EqualsInsensitively(segments[0]))
            {
                return(false);
            }

            if (!"resourceGroups".EqualsInsensitively(segments[2]))
            {
                return(false);
            }

            if (!"providers".EqualsInsensitively(segments[4]))
            {
                return(false);
            }

            ResourceIdScope routingScope;
            IEnumerable <ResourceIdScope> parentScopes;

            if (!ResourceId.TryParseResourceScopes(
                    pathSegments: segments,
                    startIndex: 4,
                    routingScope: out routingScope,
                    parentScopes: out parentScopes))
            {
                return(false);
            }

            output = new ResourceGroupLevelResourceId(
                subscriptionId: segments[1],
                resourceGroup: segments[3],
                routingScope: routingScope,
                parentScopes: parentScopes);
            return(true);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ResourceGroupLevelResourceId"/> class
 /// </summary>
 /// <param name="subscriptionId">The subscription Id</param>
 /// <param name="resourceGroup">The resource group</param>
 /// <param name="routingScope">The routing scope</param>
 /// <param name="parentScopes">The parent scopes</param>
 private ResourceGroupLevelResourceId(string subscriptionId, string resourceGroup, ResourceIdScope routingScope, IEnumerable <ResourceIdScope> parentScopes)
     : base(routingScope, parentScopes, ResourceGroupLevelResourceId.FormatResourceId(subscriptionId, resourceGroup, routingScope, parentScopes))
 {
     this.SubscriptionId = subscriptionId;
     this.ResourceGroup  = resourceGroup;
 }
 /// <summary>
 /// Creates a new <see cref="TenantLevelResourceId"/>
 /// </summary>
 /// <param name="subscriptionId">The subscription Id</param>
 /// <param name="resourceGroup">The resource group</param>
 /// <param name="routingResourceId">The routing resource Id</param>
 /// <param name="output">The resource Id output</param>
 public static bool TryCreateFromRoutingResourceId(string subscriptionId, string resourceGroup, string routingResourceId, out ResourceGroupLevelResourceId output)
 => TryParse($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/{routingResourceId}", out output);