protected PowerShellResults <L> GetList <L, F>(PSCommand psCommand, F filter, SortOptions sort) where F : WebServiceParameters, new() { EcpPerfCounters.WebServiceGetList.Increment(); Func <L[], L[]> func = (sort != null) ? sort.GetSortFunction <L>() : null; F f; if ((f = filter) == null) { f = Activator.CreateInstance <F>(); } filter = f; PowerShellResults <L> powerShellResults = this.CoreInvoke <L>(psCommand, null, null, filter); if (func != null) { powerShellResults.Output = func(powerShellResults.Output); } ResultSizeFilter resultSizeFilter = filter as ResultSizeFilter; if (resultSizeFilter != null && powerShellResults.HasWarnings) { for (int i = 0; i < powerShellResults.Warnings.Length; i++) { if (powerShellResults.Warnings[i] == Strings.WarningMoreResultsAvailable || powerShellResults.Warnings[i] == Strings.WarningDefaultResultSizeReached(resultSizeFilter.ResultSize.ToString())) { powerShellResults.Warnings[i] = ClientStrings.ListViewMoreResultsWarning; } } } return(powerShellResults); }
public PowerShellResults <RecipientStatusRow> GetList(RecipientTrackingEventsFilter filter, SortOptions sort) { PowerShellResults <MessageTrackingReportRow> list = base.GetList <MessageTrackingReportRow, RecipientTrackingEventsFilter>("Get-MessageTrackingReport", filter, null); PowerShellResults <RecipientStatusRow> powerShellResults = new PowerShellResults <RecipientStatusRow>(); powerShellResults.MergeErrors <MessageTrackingReportRow>(list); if (list.SucceededWithValue) { powerShellResults.Output = list.Value.RecipientStatuses; } else { powerShellResults.Output = new RecipientStatusRow[0]; } if (sort != null && powerShellResults.Output.Length > 1) { Func <RecipientStatusRow[], RecipientStatusRow[]> sortFunction = sort.GetSortFunction <RecipientStatusRow>(); powerShellResults.Output = sortFunction(powerShellResults.Output); } return(powerShellResults); }
public PowerShellResults <OptionalRetentionPolicyTagRow> GetList(AllRPTsFilter filter, SortOptions sort) { PowerShellResults <OptionalRetentionPolicyTagRow> powerShellResults = new PowerShellResults <OptionalRetentionPolicyTagRow>(); PowerShellResults <OptionalRetentionPolicyTagRow> list = base.GetList <OptionalRetentionPolicyTagRow, AllRPTsFilter>("Get-RetentionPolicyTag", filter, sort, "DisplayName"); PowerShellResults <OptionalRetentionPolicyTagRow> powerShellResults2 = list.MergeErrors <OptionalRetentionPolicyTagRow>(base.GetList <OptionalRetentionPolicyTagRow, AllAssociatedRPTsFilter>("Get-RetentionPolicyTag", new AllAssociatedRPTsFilter(), null)); if (list.Succeeded && powerShellResults2.Succeeded) { powerShellResults.Output = list.Output.Except(powerShellResults2.Output).ToArray <OptionalRetentionPolicyTagRow>(); if (RbacPrincipal.Current.ExecutingUserId != null) { Accounts accounts = new Accounts(); if (!RetentionUtils.UserHasArchive(accounts.GetRecipientObject(null))) { List <OptionalRetentionPolicyTagRow> list2 = new List <OptionalRetentionPolicyTagRow>(); foreach (OptionalRetentionPolicyTagRow optionalRetentionPolicyTagRow in powerShellResults.Output) { if (optionalRetentionPolicyTagRow.RetentionPolicyTag.RetentionAction != RetentionActionType.MoveToArchive) { list2.Add(optionalRetentionPolicyTagRow); } } powerShellResults.Output = list2.ToArray(); } } if (sort != null) { sort.PropertyName = RetentionPolicyTagBaseRow.GetSortProperty(sort.PropertyName); Func <OptionalRetentionPolicyTagRow[], OptionalRetentionPolicyTagRow[]> sortFunction = sort.GetSortFunction <OptionalRetentionPolicyTagRow>(); if (sortFunction != null) { powerShellResults.Output = sortFunction(powerShellResults.Output); } } } return(powerShellResults); }
public PowerShellResults <RetentionPolicyTagRow> GetList(AllAssociatedRPTsFilter filter, SortOptions sort) { filter.IncludeDefaultTags = true; PowerShellResults <RetentionPolicyTagRow> list = base.GetList <RetentionPolicyTagRow, AllAssociatedRPTsFilter>("Get-RetentionPolicyTag", filter, null); PowerShellResults <RetentionPolicyTagRow> powerShellResults = list.MergeErrors <RetentionPolicyTagRow>(base.GetList <RetentionPolicyTagRow, OptInRPTsFilter>("Get-RetentionPolicyTag", new OptInRPTsFilter(), null)); if (list.Succeeded && RbacPrincipal.Current.ExecutingUserId != null) { Accounts accounts = new Accounts(); if (!RetentionUtils.UserHasArchive(accounts.GetRecipientObject(null))) { List <RetentionPolicyTagRow> list2 = new List <RetentionPolicyTagRow>(); foreach (RetentionPolicyTagRow retentionPolicyTagRow in list.Output) { if (retentionPolicyTagRow.RetentionPolicyTag.RetentionAction != RetentionActionType.MoveToArchive) { list2.Add(retentionPolicyTagRow); } } list.Output = list2.ToArray(); } } if (list.Succeeded && powerShellResults.Succeeded) { foreach (RetentionPolicyTagRow retentionPolicyTagRow2 in list.Output.Intersect(powerShellResults.Output)) { retentionPolicyTagRow2.OptionalTag = true; } if (sort != null) { sort.PropertyName = RetentionPolicyTagBaseRow.GetSortProperty(sort.PropertyName); Func <RetentionPolicyTagRow[], RetentionPolicyTagRow[]> sortFunction = sort.GetSortFunction <RetentionPolicyTagRow>(); if (sortFunction != null) { list.Output = sortFunction(list.Output); } } } return(list); }