private bool Create_SQL_MI_Issues_and_Warnings_Model()

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