private void UpdateAfdRoute()
        {
            try
            {
                PSAfdRoute currentPsAfdRoute = this.CdnManagementClient.Routes.Get(this.ResourceGroupName, this.ProfileName, this.EndpointName, this.RouteName).ToPSAfdRoute();

                RouteUpdateParameters afdRouteUpdateParameters = new RouteUpdateParameters();

                if (ParameterSetName == FieldsParameterSet)
                {
                    afdRouteUpdateParameters = this.CreateAfdRouteUpdateByFields(currentPsAfdRoute);
                }

                PSAfdRoute updatedPsAfdRoute = this.CdnManagementClient.Routes.Update(this.ResourceGroupName, this.ProfileName, this.EndpointName, this.RouteName, afdRouteUpdateParameters).ToPSAfdRoute();

                WriteObject(updatedPsAfdRoute);
            }
            catch (AfdErrorResponseException errorResponse)
            {
                throw new PSArgumentException(errorResponse.Response.Content);
            }
        }
        private RouteUpdateParameters CreateAfdRouteUpdateByFields(PSAfdRoute currentPsAfdRoute)
        {
            bool isCustomDomainId             = this.MyInvocation.BoundParameters.ContainsKey("CustomDomainId");
            bool isSupportedProtocols         = this.MyInvocation.BoundParameters.ContainsKey("SupportedProtocol");
            bool isHttpsRedirect              = this.MyInvocation.BoundParameters.ContainsKey("HttpsRedirect");
            bool isOriginGroupId              = this.MyInvocation.BoundParameters.ContainsKey("OriginGroupId");
            bool isOriginPath                 = this.MyInvocation.BoundParameters.ContainsKey("OriginPath");
            bool isForwardingProtocol         = this.MyInvocation.BoundParameters.ContainsKey("ForwardingProtocol");
            bool isQueryStringCachingBehavior = this.MyInvocation.BoundParameters.ContainsKey("QueryStringCachingBehavior");
            bool isRuleSetIds                 = this.MyInvocation.BoundParameters.ContainsKey("RuleSetId");

            RouteUpdateParameters afdRouteUpdateParameters = new RouteUpdateParameters
            {
                CustomDomains              = currentPsAfdRoute.CustomDomainIds,
                SupportedProtocols         = currentPsAfdRoute.SupportedProtocols,
                HttpsRedirect              = currentPsAfdRoute.HttpsRedirect,
                OriginGroup                = new ResourceReference(currentPsAfdRoute.OriginGroupId),
                OriginPath                 = currentPsAfdRoute.OriginPath,
                ForwardingProtocol         = currentPsAfdRoute.ForwardingProtocol,
                RuleSets                   = currentPsAfdRoute.RuleSetIds,
                QueryStringCachingBehavior = AfdUtilities.CreateQueryStringCachingBehavior(currentPsAfdRoute.QueryStringCachingBehavior)
            };

            if (isCustomDomainId)
            {
                foreach (string customDomainId in this.CustomDomainId)
                {
                    afdRouteUpdateParameters.CustomDomains.Add(new ResourceReference(customDomainId));
                }
            }

            if (isSupportedProtocols)
            {
                afdRouteUpdateParameters.SupportedProtocols = this.SupportedProtocol;
            }

            if (isHttpsRedirect)
            {
                afdRouteUpdateParameters.HttpsRedirect = AfdUtilities.CreateHttpsRedirect(this.HttpsRedirect);
            }

            if (isOriginGroupId)
            {
                afdRouteUpdateParameters.OriginGroup = new ResourceReference(this.OriginGroupId);
            }

            if (isOriginPath)
            {
                afdRouteUpdateParameters.OriginPath = this.OriginPath;
            }

            if (isForwardingProtocol)
            {
                afdRouteUpdateParameters.ForwardingProtocol = AfdUtilities.CreateForwardingProtocol(this.ForwardingProtocol);
            }

            if (isQueryStringCachingBehavior)
            {
                afdRouteUpdateParameters.QueryStringCachingBehavior = AfdUtilities.CreateQueryStringCachingBehavior(this.QueryStringCachingBehavior);
            }

            if (isRuleSetIds)
            {
                foreach (string ruleSetId in this.RuleSetId)
                {
                    afdRouteUpdateParameters.RuleSets.Add(new ResourceReference(ruleSetId));
                }
            }

            return(afdRouteUpdateParameters);
        }
Beispiel #3
0
 /// <summary>
 /// Updates an existing route with the specified route name under the specified
 /// subscription, resource group, profile, and AzureFrontDoor endpoint.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of the Resource group within the Azure subscription.
 /// </param>
 /// <param name='profileName'>
 /// Name of the CDN profile which is unique within the resource group.
 /// </param>
 /// <param name='endpointName'>
 /// Name of the endpoint under the profile which is unique globally.
 /// </param>
 /// <param name='routeName'>
 /// Name of the routing rule.
 /// </param>
 /// <param name='routeUpdateProperties'>
 /// Route update properties
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Route> BeginUpdateAsync(this IRoutesOperations operations, string resourceGroupName, string profileName, string endpointName, string routeName, RouteUpdateParameters routeUpdateProperties, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, profileName, endpointName, routeName, routeUpdateProperties, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Updates an existing route with the specified route name under the specified
 /// subscription, resource group, profile, and AzureFrontDoor endpoint.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of the Resource group within the Azure subscription.
 /// </param>
 /// <param name='profileName'>
 /// Name of the CDN profile which is unique within the resource group.
 /// </param>
 /// <param name='endpointName'>
 /// Name of the endpoint under the profile which is unique globally.
 /// </param>
 /// <param name='routeName'>
 /// Name of the routing rule.
 /// </param>
 /// <param name='routeUpdateProperties'>
 /// Route update properties
 /// </param>
 public static Route BeginUpdate(this IRoutesOperations operations, string resourceGroupName, string profileName, string endpointName, string routeName, RouteUpdateParameters routeUpdateProperties)
 {
     return(operations.BeginUpdateAsync(resourceGroupName, profileName, endpointName, routeName, routeUpdateProperties).GetAwaiter().GetResult());
 }