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