/// <summary> /// Executes the cmdlet. /// </summary> public override void ExecuteCmdlet() { List <PsAzureAdvisorConfigurationData> results = new List <PsAzureAdvisorConfigurationData>(); ConfigData configData = new ConfigData(); ConfigDataProperties configDataProperties = new ConfigDataProperties(); WriteVerboseWithTimestamp(string.Format(Resources.ConfigurationUpdate, this.ResourceAdvisorClient.SubscriptionId)); // Used to store type of configuration bool isSubscriptionTypeConfiguration = false; bool isResourceGroupTypeConfiguration = false; switch (this.ParameterSetName) { case InputObjectLowCpuExcludeParameterSet: if (Exclude) { configDataProperties.Exclude = true; } else { configDataProperties.Exclude = false; } configDataProperties.LowCpuThreshold = this.LowCpuThreshold.ToString(); configData.Properties = configDataProperties; // If InputObject is not null, this is a piping scenario. if (this.InputObject != null) { isSubscriptionTypeConfiguration = SuppressionHelper.IsConfigurationSubscriptionLevel(this.InputObject); if (isSubscriptionTypeConfiguration) { if (ShouldProcess(this.ResourceAdvisorClient.SubscriptionId, string.Format(Resources.ConfigurationUpdateSubscriptionLevel, this.ResourceAdvisorClient.SubscriptionId))) { results = this.CreateConfigurationBySubscription(configData); } } } else { if (ShouldProcess(this.ResourceAdvisorClient.SubscriptionId, string.Format(Resources.ConfigurationUpdateSubscriptionLevel, this.ResourceAdvisorClient.SubscriptionId))) { results = this.CreateConfigurationBySubscription(configData); } } break; case InputObjectRgExcludeParameterSet: if (Exclude) { configDataProperties.Exclude = true; } else { configDataProperties.Exclude = false; } configData.Properties = configDataProperties; // InputObject is not null, this is a piping scenario. if (this.InputObject != null) { isResourceGroupTypeConfiguration = SuppressionHelper.IsConfigurationResourceGroupLevel(this.InputObject); if (isResourceGroupTypeConfiguration) { string resourceGroup = RecommendationHelper.GetResourceGroupFromResourceID(this.InputObject.Id); if (ShouldProcess(resourceGroup, string.Format(Resources.ConfigurationUpdateResourceGroupLevel, this.ResourceAdvisorClient.SubscriptionId, resourceGroup))) { results = this.CreateConfigurationByResourceGroup(configData, resourceGroup); } } } else { if (ShouldProcess(this.ResourceGroupName, string.Format(Resources.ConfigurationUpdateResourceGroupLevel, this.ResourceAdvisorClient.SubscriptionId, this.ResourceGroupName))) { results = this.CreateConfigurationByResourceGroup(configData, this.ResourceGroupName); } } break; } this.WriteObject(results, true); }
/// <summary> /// Parse ConfigDataProperties to equivalent PSObject /// </summary> /// <param name="configDataProperties">ConfigDataProperties to be parsed</param> /// <returns>Equivalent PsAzureAdvisorConfigurationProperties</returns> internal static PsAzureAdvisorConfigurationProperties GetFromConfigurationProperties(ConfigDataProperties configDataProperties) { if (configDataProperties == null) { return(null); } return(new PsAzureAdvisorConfigurationProperties() { AdditionalProperties = configDataProperties.AdditionalProperties, Exclude = configDataProperties.Exclude, LowCpuThreshold = configDataProperties.LowCpuThreshold, }); }