in src/Assessment/Processor/ProcessDatasets.cs [540:585]
private bool Create_SQL_MI_Issues_and_Warnings_Model(List<SQL_MI_Issues_and_Warnings> SQL_MI_Issues_and_Warnings_List)
{
if (AzureSQLInstancesData == null)
{
UserInputObj.LoggerObj.LogWarning("Not creating SQL_MI_Issues_and_Warnings excel model as Azure SQL instances dataset is null");
return false;
}
if (AzureSQLInstancesData.Count <= 0)
{
UserInputObj.LoggerObj.LogWarning("Not creating SQL_MI_Issues_and_Warnings excel model as Azure SQL instances dataset is empty");
return false;
}
UserInputObj.LoggerObj.LogInformation("Creating excel model for SQL_MI_Issue_and_Warnings");
if (SQL_MI_Issues_and_Warnings_List == null)
SQL_MI_Issues_and_Warnings_List = new List<SQL_MI_Issues_and_Warnings>();
foreach (var azureSqlInstance in AzureSQLInstancesData)
{
foreach (var migrationIssue in azureSqlInstance.Value.AzureSQLMIMigrationIssues)
{
if (migrationIssue.IssueCategory != IssueCategories.Warning && migrationIssue.IssueCategory != IssueCategories.Issue)
continue;
foreach (var impactedObject in migrationIssue.ImpactedObjects)
{
SQL_MI_Issues_and_Warnings obj = new SQL_MI_Issues_and_Warnings();
obj.MachineName = azureSqlInstance.Value.MachineName;
obj.SQLInstance = azureSqlInstance.Value.InstanceName;
obj.Category = migrationIssue.IssueCategory.ToString();
obj.Title = migrationIssue.IssueId;
obj.ImpactedObjectType = impactedObject.ObjectType;
obj.ImpactedObjectName = impactedObject.ObjectName;
obj.UserDatabases = azureSqlInstance.Value.DatabaseSummaryNumberOfUserDatabases;
obj.MachineId = AssessmentIdToDiscoveryIdLookup.ContainsKey(azureSqlInstance.Value.MachineArmId) ? AssessmentIdToDiscoveryIdLookup[azureSqlInstance.Value.MachineArmId] : "";
SQL_MI_Issues_and_Warnings_List.Add(obj);
}
}
}
UserInputObj.LoggerObj.LogInformation($"Updated SQL_MI_Issues_and_Warnings excel model with {SQL_MI_Issues_and_Warnings_List.Count} datapoints");
return true;
}