/// <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); }
/// <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); }