Skip to content

Commit 4a3b60e

Browse files
author
Aashish Rajaram Salokhe
committed
Improved the code perf
1 parent 50ec9a8 commit 4a3b60e

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

src/GuestConfiguration/GuestConfiguration/Common/GuestConfigurationCmdletBase.cs

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ protected IEnumerable<PolicyStatusDetailed> GetPolicyStatusesDetailed(string res
114114
foreach (var gcPolicySetDefinition in gcPolicySetDefinitions)
115115
{
116116
var gcAssignmentReports = GetPolicyStatusesDetailedByInitiativeId(resourceGroupName, vmName, gcPolicySetDefinition.Id, gcrpAssignments);
117-
if (gcAssignmentReports != null || gcAssignmentReports.Count() > 0)
117+
if (gcAssignmentReports != null && gcAssignmentReports.Count() > 0)
118118
{
119119
gcPolicyAssignmentReportList.AddRange(gcAssignmentReports);
120120
}
@@ -183,34 +183,37 @@ protected IEnumerable<PolicyStatusDetailed> GetPolicyStatusesDetailedByInitiativ
183183
var gcPolicyAssignments = GetPolicyStatuses(resourceGroupName, vmName, gcrpAssignments, initiativeName);
184184
var gcPolicyAssignmentReportList = new List<PolicyStatusDetailed>();
185185

186-
var gcPolicyAssignmentsArray = gcPolicyAssignments.ToArray();
187-
188-
// Sort assignments by policy display name
189-
Array.Sort(gcPolicyAssignmentsArray, (first, second) =>
186+
if (gcPolicyAssignments.Count() > 0)
190187
{
191-
return string.Compare(first.PolicyDisplayName, second.PolicyDisplayName, true);
192-
});
188+
var gcPolicyAssignmentsArray = gcPolicyAssignments.ToArray();
193189

194-
foreach (var gcPolicyAssignment in gcPolicyAssignmentsArray)
195-
{
196-
var reportGuid = CommonHelpers.GetReportGUIDFromID(gcPolicyAssignment.LatestReportId);
197-
GuestConfigurationAssignmentReport gcrpReport = null;
198-
if (gcPolicyAssignment.LatestReportId != null)
190+
// Sort assignments by policy display name
191+
Array.Sort(gcPolicyAssignmentsArray, (first, second) =>
199192
{
200-
gcrpReport = GuestConfigurationClient.GuestConfigurationAssignmentReports.Get(resourceGroupName, gcPolicyAssignment.Configuration.Name, reportGuid, vmName);
201-
}
193+
return string.Compare(first.PolicyDisplayName, second.PolicyDisplayName, true);
194+
});
202195

203-
PolicyStatusDetailed policyDetailed = new PolicyStatusDetailed(gcrpReport, gcPolicyAssignment);
204-
QueryOptions queryOptions = new QueryOptions();
205-
queryOptions.Filter = string.Format("resourceGroup eq '{0}' and policyDefinitionAction eq 'deployifnotexists' and contains(ResourceId,'{1}')", resourceGroupName, vmName);
206-
queryOptions.OrderBy = "Timestamp desc";
207-
queryOptions.Top = 1;
208-
PolicyStatesQueryResults policyDbResults = PolicyInsightsClient.PolicyStates.ListQueryResultsForPolicySetDefinition("latest", DefaultContext.Subscription.Id, gcPolicyAssignment.PolicySetDefinitionName, queryOptions);
209-
if (policyDbResults.Odatacount > 0 && policyDbResults.Value[0].ComplianceState == "NonCompliant")
196+
foreach (var gcPolicyAssignment in gcPolicyAssignmentsArray)
210197
{
211-
policyDetailed.ComplianceStatus = policyDbResults.Value[0].ComplianceState;
198+
var reportGuid = CommonHelpers.GetReportGUIDFromID(gcPolicyAssignment.LatestReportId);
199+
GuestConfigurationAssignmentReport gcrpReport = null;
200+
if (gcPolicyAssignment.LatestReportId != null)
201+
{
202+
gcrpReport = GuestConfigurationClient.GuestConfigurationAssignmentReports.Get(resourceGroupName, gcPolicyAssignment.Configuration.Name, reportGuid, vmName);
203+
}
204+
205+
PolicyStatusDetailed policyDetailed = new PolicyStatusDetailed(gcrpReport, gcPolicyAssignment);
206+
QueryOptions queryOptions = new QueryOptions();
207+
queryOptions.Filter = string.Format("resourceGroup eq '{0}' and policyDefinitionAction eq 'deployifnotexists' and contains(ResourceId,'{1}')", resourceGroupName, vmName);
208+
queryOptions.OrderBy = "Timestamp desc";
209+
queryOptions.Top = 1;
210+
PolicyStatesQueryResults policyDbResults = PolicyInsightsClient.PolicyStates.ListQueryResultsForPolicySetDefinition("latest", DefaultContext.Subscription.Id, gcPolicyAssignment.PolicySetDefinitionName, queryOptions);
211+
if (policyDbResults.Odatacount > 0 && policyDbResults.Value[0].ComplianceState == "NonCompliant")
212+
{
213+
policyDetailed.ComplianceStatus = policyDbResults.Value[0].ComplianceState;
214+
}
215+
gcPolicyAssignmentReportList.Add(policyDetailed);
212216
}
213-
gcPolicyAssignmentReportList.Add(policyDetailed);
214217
}
215218

216219
return gcPolicyAssignmentReportList;

0 commit comments

Comments
 (0)