Microsoft.Azure.Commands.Sql.Service.AzureSqlDatabaseIndexRecommendationCommunicator.ListRecommendedIndexes C# (CSharp) Method

ListRecommendedIndexes() public method

List all recommended indexes. If database name is null get recommendations for all databases on server.
public ListRecommendedIndexes ( string resourceGroupName, string serverName, string databaseName, string clientRequestId ) : List
resourceGroupName string Resource group
serverName string Server name
databaseName string Database name
clientRequestId string Request id
return List
        public List<IndexRecommendation> ListRecommendedIndexes(string resourceGroupName, string serverName, string databaseName, string clientRequestId)
        {
            var databases = new List<Management.Sql.Models.Database>();

            var recommendedIndexes = new List<IndexRecommendation>();
            if (string.IsNullOrEmpty(databaseName))
            {
                var response = GetCurrentSqlClient(clientRequestId).Databases.ListExpanded(resourceGroupName, serverName, Expand);
                databases.AddRange(response.Databases);
            }
            else
            {
                var response = GetCurrentSqlClient(clientRequestId).Databases.GetExpanded(resourceGroupName, serverName, databaseName, Expand);
                databases.Add(response.Database);
            }

            foreach (var database in databases)
            {
                foreach (var schema in database.Properties.Schemas)
                {
                    foreach (var table in schema.Properties.Tables)
                    {
                        foreach (var recommended in table.Properties.RecommendedIndexes)
                        {
                            var recommendation = new IndexRecommendation(recommended.Properties);
                            recommendation.DatabaseName = database.Name;
                            recommendation.Name = recommended.Name;
                            recommendedIndexes.Add(recommendation);
                        }
                    }
                }
            }
            return recommendedIndexes;
        }