Beispiel #1
0
        /// <summary>
        /// Executes the cmdlet.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            RecommendationResource recommendationResourceUtil                  = new RecommendationResource();
            List <PsAzureAdvisorResourceRecommendationBase> results            = new List <PsAzureAdvisorResourceRecommendationBase>();
            List <ResourceRecommendationBase> entirePageLinkRecommendationData = new List <ResourceRecommendationBase>();

            switch (this.ParameterSetName)
            {
            case IdParameterSet:
                results = recommendationResourceUtil.GetAllRecommendationsFromClient(this.ResourceAdvisorClient, this.ResourceId);
                break;

            case NameParameterSet:
                results = recommendationResourceUtil.GetAllRecommendationsFromClient(this.ResourceAdvisorClient);

                // Filter out the resourcegroupname recommendations
                if (!string.IsNullOrEmpty(this.ResourceGroupName))
                {
                    results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, string.Empty, this.ResourceGroupName);
                }
                break;
            }

            if (!string.IsNullOrEmpty(this.Category))
            {
                results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, this.Category, string.Empty);
            }

            this.WriteObject(results, true);
        }
Beispiel #2
0
        /// <summary>
        /// Executes the cmdlet.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            RecommendationResource recommendationResourceUtil                  = new RecommendationResource();
            List <PsAzureAdvisorResourceRecommendationBase> results            = new List <PsAzureAdvisorResourceRecommendationBase>();
            List <ResourceRecommendationBase> entirePageLinkRecommendationData = new List <ResourceRecommendationBase>();
            AzureOperationResponse <ResourceRecommendationBase> recommendation = null;

            switch (this.ParameterSetName)
            {
            case IdParameterSet:
                string recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.ResourceId);

                recommendation = this.ResourceAdvisorClient.Recommendations.GetWithHttpMessagesAsync("subscriptions/" + this.ResourceAdvisorClient.SubscriptionId, recommendationId).Result;
                results.Add(PsAzureAdvisorResourceRecommendationBase.GetFromResourceRecommendationBase(recommendation.Body));
                break;

            case NameParameterSet:
                results = recommendationResourceUtil.GetAllRecommendationsFromClient(this.ResourceAdvisorClient);

                // Filter out the resourcegroupname recommendations
                if (!string.IsNullOrEmpty(this.ResourceGroupName))
                {
                    results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, string.Empty, this.ResourceGroupName);
                }
                break;
            }

            if (!string.IsNullOrEmpty(this.Category))
            {
                results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, this.Category, string.Empty);
            }

            this.WriteObject(results, true);
        }
        /// <summary>
        /// Executes the cmdlet.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            List <PsAzureAdvisorResourceRecommendationBase> results = new List <PsAzureAdvisorResourceRecommendationBase>();

            AzureOperationResponse <IPage <ResourceRecommendationBase> > operationResponseRecommendation = null;
            List <ResourceRecommendationBase> entirePageLinkRecommendationData = new List <ResourceRecommendationBase>();
            AzureOperationResponse <ResourceRecommendationBase> recommendation = null;

            switch (this.ParameterSetName)
            {
            case IdParameterSet:
                string recommendationId = RecommendationHelper.GetRecommendationIdFromResourceID(this.ResourceId);

                recommendation = this.ResourceAdvisorClient.Recommendations.GetWithHttpMessagesAsync("subscriptions/" + this.ResourceAdvisorClient.SubscriptionId, recommendationId).Result;
                results.Add(PsAzureAdvisorResourceRecommendationBase.GetFromResourceRecommendationBase(recommendation.Body));
                break;

            case NameParameterSet:
                string nextPagelink = string.Empty;

                // Iterate the page-link if exists, if the first iteration retreives the data.
                do
                {
                    if (string.IsNullOrEmpty(nextPagelink))
                    {
                        operationResponseRecommendation = this.ResourceAdvisorClient.Recommendations.ListWithHttpMessagesAsync().Result;
                    }
                    else
                    {
                        operationResponseRecommendation = this.ResourceAdvisorClient.Recommendations.ListWithHttpMessagesAsync(nextPagelink).Result;
                    }
                    // Advisor .net SDK is broken for the paging capability. So we will not use the paging until SDK is fixed.
                    // nextPagelink = operationResponseRecommendation.Body.NextPageLink;

                    // Add current page items to the List
                    entirePageLinkRecommendationData.AddRange(operationResponseRecommendation.Body.ToList());
                }while (!string.IsNullOrEmpty(nextPagelink));

                // Convert to PsAzureAdvisorResourceRecommendationBase list
                results = PsAzureAdvisorResourceRecommendationBase.GetFromResourceRecommendationBase(entirePageLinkRecommendationData);

                // Filter out the resourcegroupname recommendations
                if (!string.IsNullOrEmpty(this.ResourceGroupName))
                {
                    results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, string.Empty, this.ResourceGroupName);
                }

                break;
            }

            if (!string.IsNullOrEmpty(this.Category))
            {
                results = RecommendationHelper.RecommendationFilterByCategoryAndResource(results, this.Category, string.Empty);
            }

            if (Refresh)
            {
                this.ResourceAdvisorClient.Recommendations.GenerateWithHttpMessagesAsync();
            }

            this.WriteObject(results, true);
        }