public static PSSqlVulnerabilityAssessmentBaselineResults ConvertToPSType(this RulesResults value, string workspaceId = "")
 {
     return(new PSSqlVulnerabilityAssessmentBaselineResults()
     {
         Results = value.Value?.Select(scan => scan.ConvertToPSType()).ToList() ?? new List <PSSqlVulnerabilityAssessmentRuleBaselineResults>(),
         WorkSpaceId = workspaceId
     });
 }
        public override void ExecuteCmdlet()
        {
            var databaseResourceId = BuildDatabaseResourceId();
            Dictionary <string, IList <IList <string> > > baseline = null;

            if (this.ParameterSetName == ParameterSetNames.InputObjectBaselineWithResourceId ||
                this.ParameterSetName == ParameterSetNames.InputObjectBaselineWithOnPrem)
            {
                baseline = InputObject.Results.ToDictionary(
                    result => result.Name,
                    result => (IList <IList <string> >)result.Results.Select(
                        row => (IList <string>)row.ToList()).ToList());
            }
            else
            {
                if (BaselineSet != null)
                {
                    baseline = BaselineSet.Cast <DictionaryEntry>()
                               .ToDictionary(
                        kvp => (string)kvp.Key,
                        kvp => (IList <IList <string> >)((object[])kvp.Value)
                        .Select(arr => (IList <string>)((object[])arr)
                                .Select(str => (string)str).ToList())
                        .ToList());
                }
            }

            RulesResults results = null;

            if (Force.IsPresent || ShouldContinue($"Are you sure you want to set baseline? - This will discard your old baseline work.", $"Setting baseline for {databaseResourceId}."))
            {
                if (baseline != null)
                {
                    results = SecurityCenterClient.SqlVulnerabilityAssessmentBaselineRules.AddWithHttpMessagesAsync(WorkspaceId, VulnerabilityAssessmentConstants.ApiVersion, databaseResourceId, results: baseline).GetAwaiter().GetResult().Body;
                }
                else
                {
                    results = SecurityCenterClient.SqlVulnerabilityAssessmentBaselineRules.AddWithHttpMessagesAsync(WorkspaceId, VulnerabilityAssessmentConstants.ApiVersion, databaseResourceId, latestScan: true).GetAwaiter().GetResult().Body;
                }

                WriteObject(results?.ConvertToPSType(WorkspaceId));
            }
        }