// Token: 0x060009D5 RID: 2517 RVA: 0x000213C0 File Offset: 0x0001F5C0 public override IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { notFoundReason = null; QueryFilter objectFilter = this.GetObjectFilter(); return(session.FindPaged <T>(objectFilter, rootId, !base.IsServiceInstanceDefinied, null, 0)); }
public IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = null; AggregationSubscriptionQueryFilter filter = new AggregationSubscriptionQueryFilter(this); return(session.FindPaged <T>(filter, rootId, false, null, 0)); }
private IEnumerable <ExtendedSecurityPrincipal> FindObjects(IConfigDataProvider session, ADObjectId rootId, QueryFilter targetFilter) { return(session.FindPaged <ExtendedSecurityPrincipal>(QueryFilter.AndTogether(new QueryFilter[] { targetFilter, this.InternalFilter }), rootId, this.DeepSearch, this.InternalSortBy, this.PageSize)); }
// Token: 0x06000B6C RID: 2924 RVA: 0x000244E0 File Offset: 0x000226E0 public IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData notUsed2, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = null; T[] array = session.FindPaged <T>(null, rootId, false, null, 0).ToArray <T>(); if (array == null || array.Length == 0) { notFoundReason = new LocalizedString?(Strings.ResubmitRequestDoesNotExist((this.identity == null) ? 0L : this.identity.ResubmitRequestRowId)); } return(array); }
private PolicyChangeBatch GetBindingChanges(TenantCookieCollection tenantCookies) { IConfigDataProvider configDataProvider = ConfigDataProviderFactory.Default.Create(DatabaseType.Directory); PolicyChangeBatch newBatch = UnifiedPolicySession.GetNewBatch <BindingConfiguration>(tenantCookies); List <BindingStorage> list = new List <BindingStorage>(); List <ScopeStorage> list2 = new List <ScopeStorage>(); new List <BindingConfiguration>(); foreach (TenantCookie tenantCookie in ((IEnumerable <TenantCookie>)tenantCookies)) { PolicySyncCookie policySyncCookie = PolicySyncCookie.Deserialize(tenantCookie.Cookie); string pagingWatermark = UnifiedPolicySession.GetPagingWatermark <BindingConfiguration>(policySyncCookie); string pagingWatermark2 = UnifiedPolicySession.GetPagingWatermark <ScopeConfiguration>(policySyncCookie); QueryFilter queryFilter = UnifiedPolicySession.CreateGetChangesQueryFilter(tenantCookie, pagingWatermark, tenantCookies.Workload, true); QueryFilter queryFilter2 = UnifiedPolicySession.CreateGetChangesQueryFilter(tenantCookie, pagingWatermark2, tenantCookies.Workload, true); list.AddRange(configDataProvider.FindPaged <BindingStorage>(queryFilter, null, false, null, 1000).Cast <BindingStorage>()); list2.AddRange(configDataProvider.FindPaged <ScopeStorage>(queryFilter2, null, false, null, 1000).Cast <ScopeStorage>()); bool flag; UnifiedPolicySession.SetPagingWatermark <BindingConfiguration>(policySyncCookie, PagingHelper.GetProcessedCookie(queryFilter, out flag)); bool flag2; UnifiedPolicySession.SetPagingWatermark <ScopeConfiguration>(policySyncCookie, PagingHelper.GetProcessedCookie(queryFilter2, out flag2)); TenantCookie tenantCookie2 = newBatch.NewCookies[tenantCookie.TenantId]; tenantCookie2.Cookie = policySyncCookie.Serialize(); tenantCookie2.MoreData = (!flag || !flag2); } using (List <ScopeStorage> .Enumerator enumerator2 = list2.GetEnumerator()) { while (enumerator2.MoveNext()) { UnifiedPolicySession.< > c__DisplayClass19 CS$ < > 8__locals1 = new UnifiedPolicySession.< > c__DisplayClass19(); CS$ < > 8__locals1.scope = enumerator2.Current; Guid parentBindingId = Guid.Parse((string)CS$ < > 8__locals1.scope[UnifiedPolicyStorageBaseSchema.ContainerProp]); BindingStorage bindingStorage = list.FirstOrDefault((BindingStorage b) => b.Id.ObjectGuid == parentBindingId && b.OrganizationalUnitRoot.ObjectGuid == CS$ < > 8__locals1.scope.OrganizationalUnitRoot.ObjectGuid); if (bindingStorage == null) { bindingStorage = configDataProvider.Find <BindingStorage>(UnifiedPolicySession.CreateGetObjectQueryFilter(CS$ < > 8__locals1.scope.OrganizationalUnitRoot.ObjectGuid, parentBindingId, true), null, false, null).Cast <BindingStorage>().FirstOrDefault <BindingStorage>(); list.Add(bindingStorage); } if (CS$ < > 8__locals1.scope.ObjectState == ObjectState.Deleted) { bindingStorage.RemovedScopes.Add(CS$ < > 8__locals1.scope); }
public IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = null; if (this.IsUniqueIdentity) { return(new List <T>(1) { (T)((object)session.Read <T>(this.sendAddressIdentity)) }); } return(session.FindPaged <T>(null, rootId, false, null, 0)); }
internal IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = null; QueryFilter queryFilter = new AlternateMailboxQueryFilter(this.m_objectId); if (optionalData != null && optionalData.AdditionalFilter != null) { queryFilter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, optionalData.AdditionalFilter }); } return(session.FindPaged <T>(queryFilter, rootId, true, null, 0)); }
// Token: 0x06000B7B RID: 2939 RVA: 0x000246A4 File Offset: 0x000228A4 IEnumerable <T> IIdentityParameter.GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { QueryFilter queryFilter = new RmsTemplateQueryFilter(this.templateId, this.templateName); notFoundReason = new LocalizedString?(Strings.ErrorManagementObjectNotFound(this.ToString())); if (optionalData != null && optionalData.AdditionalFilter != null) { queryFilter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, optionalData.AdditionalFilter }); } return(session.FindPaged <T>(queryFilter, rootId, false, null, 0)); }
public static bool TryGetTransportRules(IConfigDataProvider dataSession, out IEnumerable <TransportRule> rules, out string error) { string text = Utils.RuleCollectionNameFromRole(); QueryFilter filter = new TextFilter(ADObjectSchema.Name, text, MatchOptions.FullString, MatchFlags.Default); TransportRuleCollection[] array = (TransportRuleCollection[])dataSession.Find <TransportRuleCollection>(filter, null, true, null); if (array.Any <TransportRuleCollection>()) { rules = dataSession.FindPaged <TransportRule>(null, array[0].Id, false, null, 0); error = null; return(true); } rules = null; error = string.Format("Unable to find rule collection {0}. Tenant is not provisioned for Exchange Transport Rules.", text); return(false); }
internal static void CheckModeratedMailboxes(ADUser user, IConfigDataProvider session, Task.ErrorLoggerDelegate writeError) { QueryFilter filter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.ModerationEnabled, true), new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.ModeratedBy, user.Id) }); IEnumerable <ADUser> enumerable = session.FindPaged <ADUser>(filter, null, true, null, 1); using (IEnumerator <ADUser> enumerator = enumerable.GetEnumerator()) { if (enumerator.MoveNext()) { writeError(new RecipientTaskException(Strings.ErrorRemoveModeratorMailbox(user.Name)), ExchangeErrorCategory.Client, user); } } }
internal static void CheckManagedGroups(ADUser user, IConfigDataProvider session, Task.TaskWarningLoggingDelegate writeWarning) { QueryFilter filter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, ADGroupSchema.MemberJoinRestriction, MemberUpdateType.ApprovalRequired), new ComparisonFilter(ComparisonOperator.Equal, ADGroupSchema.ManagedBy, user.Id) }); IEnumerable <ADGroup> enumerable = session.FindPaged <ADGroup>(filter, null, true, null, 1); using (IEnumerator <ADGroup> enumerator = enumerable.GetEnumerator()) { if (enumerator.MoveNext()) { writeWarning(Strings.WarningRemoveApprovalRequiredGroupOwners(user.Id.ToString())); } } }
private static IEnumerable <UMAutoAttendant> GetAutoAttendantsInSameDialPlan(IConfigDataProvider session, UMAutoAttendant autoAttendant, ADObjectId dialPlanId) { if (session == null) { throw new ArgumentNullException("session"); } if (autoAttendant == null) { throw new ArgumentNullException("autoAttendant"); } if (dialPlanId == null) { throw new ArgumentNullException("dialPlanId"); } ComparisonFilter filter = new ComparisonFilter(ComparisonOperator.Equal, UMAutoAttendantSchema.UMDialPlan, dialPlanId); ADObjectId parent = autoAttendant.Id.Parent; return(session.FindPaged <UMAutoAttendant>(filter, parent, false, null, 0)); }
public PriorityHelper(IConfigDataProvider session) { if (session == null) { throw new ArgumentNullException("session"); } this.session = session; this.rules = new List <TransportRule>(); IEnumerable <TransportRule> enumerable = session.FindPaged <TransportRule>(null, Utils.GetRuleCollectionId(this.session), false, null, 0); foreach (TransportRule item in enumerable) { this.rules.Add(item); } this.rules.Sort(new Comparison <TransportRule>(ADRuleStorageManager.CompareTransportRule)); this.sequenceNumbers = new int[this.rules.Count]; int num = 0; foreach (TransportRule transportRule in this.rules) { this.sequenceNumbers[num++] = transportRule.Priority; } }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); base.InternalProcessRecord(); IConfigDataProvider dataSession = base.DataSession; IEnumerable <T> enumerable = dataSession.FindPaged <T>(null, this.Server.Identity, true, null, 0); foreach (T t in enumerable) { if (!this.ShouldSkipVDir(t) && t.ExchangeVersion.IsOlderThan(t.MaximumSupportedExchangeObjectVersion)) { try { t.SetExchangeVersion(t.MaximumSupportedExchangeObjectVersion); base.DataSession.Save(t); } catch (DataSourceTransientException exception) { base.WriteError(exception, ErrorCategory.WriteError, null); } } } TaskLogger.LogExit(); }
internal virtual IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { if (!typeof(MapiObject).IsAssignableFrom(typeof(T))) { throw new ArgumentException(Strings.ErrorInvalidType(typeof(T).Name), "type"); } if (!(session is MapiSession)) { throw new ArgumentException(Strings.ErrorInvalidParameterType("session", typeof(MapiSession).Name), "session"); } notFoundReason = null; if (optionalData != null && optionalData.AdditionalFilter != null) { throw new NotSupportedException("Supplying Additional Filters is not currently supported by this IdParameter."); } if (rootId == null) { return(new List <T> { (T)((object)session.Read <T>(this.mapiObjectId)) }); } return(session.FindPaged <T>(null, rootId, true, null, 0)); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); base.InternalProcessRecord(); ServerIdParameter serverIdParameter = new ServerIdParameter(); Server server = (Server)base.GetDataObject <Server>(serverIdParameter, base.DataSession, null, new LocalizedString?(Strings.ErrorServerNotFound(serverIdParameter.ToString())), new LocalizedString?(Strings.ErrorServerNotUnique(serverIdParameter.ToString()))); if (!server.IsClientAccessServer && !server.IsCafeServer) { base.ThrowTerminatingError(server.GetServerRoleError(ServerRole.ClientAccess), ErrorCategory.InvalidOperation, server); } using (ServerManager serverManager = new ServerManager()) { ApplicationPool applicationPool = serverManager.ApplicationPools["MSExchangeOWAAppPool"]; if (applicationPool == null) { base.ThrowTerminatingError(new ADNoSuchObjectException(Strings.ErrorOWAVdirAppPoolNotExist), ErrorCategory.ObjectNotFound, serverManager.ApplicationPools); } applicationPool.ManagedPipelineMode = 0; serverManager.CommitChanges(); } QueryFilter filter = new ComparisonFilter(ComparisonOperator.NotEqual, ADOwaVirtualDirectorySchema.OwaVersion, OwaVersions.Exchange2003or2000); base.WriteVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(base.DataSession, typeof(ADOwaVirtualDirectory), filter, server.Identity, true)); IConfigDataProvider dataSession = base.DataSession; IEnumerable <ADOwaVirtualDirectory> enumerable = dataSession.FindPaged <ADOwaVirtualDirectory>(filter, server.Identity, true, null, 0); foreach (ADOwaVirtualDirectory adowaVirtualDirectory in enumerable) { if (adowaVirtualDirectory.WebSite.Equals("Exchange Back End", StringComparison.OrdinalIgnoreCase)) { string metabasePath = adowaVirtualDirectory.MetabasePath; try { base.WriteVerbose(Strings.VerboseConnectingIISVDir(metabasePath)); using (IisUtility.CreateIISDirectoryEntry(metabasePath)) { if (!DirectoryEntry.Exists(metabasePath)) { this.WriteWarning(Strings.OwaAdOrphanFound(adowaVirtualDirectory.Identity.ToString())); continue; } if (!IisUtility.WebDirObjectExists(metabasePath, this.owaVersion)) { base.WriteVerbose(Strings.VerboseCreatingChildVDir(this.owaVersion, metabasePath)); CreateVirtualDirectory createVirtualDirectory = new CreateVirtualDirectory(); createVirtualDirectory.Name = this.owaVersion; createVirtualDirectory.Parent = metabasePath; createVirtualDirectory.CustomizedVDirProperties = OwaVirtualDirectoryHelper.GetVersionVDirProperties(); createVirtualDirectory.LocalPath = (string)IisUtility.GetIisPropertyValue("Path", createVirtualDirectory.CustomizedVDirProperties); createVirtualDirectory.Initialize(); createVirtualDirectory.Execute(); } } OwaVirtualDirectoryHelper.CreateLegacyVDirs(metabasePath, true); OwaVirtualDirectoryHelper.CreateOwaCalendarVDir(metabasePath, VirtualDirectoryRole.Mailbox); if (ExchangeServiceVDirHelper.IsBackEndVirtualDirectory(adowaVirtualDirectory)) { WebAppVirtualDirectoryHelper.UpdateMetabase(adowaVirtualDirectory, metabasePath, true); } } catch (COMException ex) { base.WriteError(new IISGeneralCOMException(ex.Message, ex.ErrorCode, ex), ErrorCategory.InvalidOperation, null); } if (adowaVirtualDirectory.ExchangeVersion.IsOlderThan(adowaVirtualDirectory.MaximumSupportedExchangeObjectVersion)) { try { adowaVirtualDirectory.SetExchangeVersion(adowaVirtualDirectory.MaximumSupportedExchangeObjectVersion); base.DataSession.Save(adowaVirtualDirectory); } catch (DataSourceTransientException exception) { base.WriteError(exception, ErrorCategory.WriteError, null); } } } } TaskLogger.LogExit(); }
internal override IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { if (!typeof(MailboxEntry).IsAssignableFrom(typeof(T))) { throw new ArgumentException(Strings.ErrorInvalidType(typeof(T).Name), "type"); } if (session == null) { throw new ArgumentNullException("session"); } if (rootId == null) { throw new ArgumentNullException("rootId"); } if (!(session is MapiAdministrationSession)) { throw new ArgumentException(Strings.ErrorInvalidType(typeof(MapiAdministrationSession).Name), "session"); } if (string.IsNullOrEmpty(this.displayName) && null == base.MapiObjectId) { throw new InvalidOperationException(Strings.ErrorOperationOnInvalidObject); } notFoundReason = null; List <T> list = new List <T>(); Guid mailboxGuid = Guid.Empty; if (base.MapiObjectId != null) { mailboxGuid = ((MailboxId)base.MapiObjectId).MailboxGuid; } QueryFilter filter = new MailboxContextFilter(mailboxGuid, this.flags); try { IEnumerable <T> enumerable = session.FindPaged <T>(filter, rootId, true, null, 0); if (null != base.MapiObjectId) { bool flag = Guid.Empty != ((MailboxId)base.MapiObjectId).MailboxGuid; bool flag2 = !string.IsNullOrEmpty(((MailboxId)base.MapiObjectId).MailboxExchangeLegacyDn); if (flag || flag2) { foreach (T t in enumerable) { IConfigurable configurable = t; MailboxEntry mailboxEntry = (MailboxEntry)configurable; if (flag && mailboxEntry.Identity.MailboxGuid == ((MailboxId)base.MapiObjectId).MailboxGuid) { list.Add((T)((object)mailboxEntry)); } else if (flag2 && string.Equals(mailboxEntry.Identity.MailboxExchangeLegacyDn, ((MailboxId)base.MapiObjectId).MailboxExchangeLegacyDn, StringComparison.OrdinalIgnoreCase)) { list.Add((T)((object)mailboxEntry)); } } } } if (list.Count == 0 && typeof(MailboxStatistics).IsAssignableFrom(typeof(T)) && !string.IsNullOrEmpty(this.displayName)) { foreach (T t2 in enumerable) { IConfigurable configurable2 = t2; MailboxStatistics mailboxStatistics = (MailboxStatistics)configurable2; if (string.Equals(this.displayName, mailboxStatistics.DisplayName, StringComparison.OrdinalIgnoreCase)) { list.Add((T)((object)mailboxStatistics)); } } } } catch (MapiObjectNotFoundException) { } return(list); }
internal IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = new LocalizedString?(Strings.ErrorManagementObjectNotFound(this.ToString())); return(session.FindPaged <T>((optionalData == null) ? null : optionalData.AdditionalFilter, this.Identity, false, null, 0)); }
// Token: 0x06000B6B RID: 2923 RVA: 0x000244D1 File Offset: 0x000226D1 public IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session) where T : IConfigurable, new() { return(session.FindPaged <T>(null, rootId, false, null, 0)); }
public static void CopyDavVdirsToMetabase(string domainController, string exchangeServerName, string metabaseServerName) { ADSessionSettings sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(domainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 154, "CopyDavVdirsToMetabase", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\VirtualDirectoryTasks\\OWAVirtualDirectoryHelper.cs"); Server server = topologyConfigurationSession.FindServerByName(exchangeServerName); IConfigDataProvider configDataProvider = topologyConfigurationSession; IEnumerable <ADOwaVirtualDirectory> enumerable = configDataProvider.FindPaged <ADOwaVirtualDirectory>(null, server.Id, true, null, 0); OwaVirtualDirectoryHelper.SetWebSvcExtRestrictionList(metabaseServerName); foreach (ADOwaVirtualDirectory adowaVirtualDirectory in enumerable) { if (!adowaVirtualDirectory.IsExchange2007OrLater) { string[] array = adowaVirtualDirectory.MetabasePath.Split(new char[] { '/' }); if (array.Length == 7) { array[2] = metabaseServerName; MultiValuedProperty <AuthenticationMethod> internalAuthenticationMethods = adowaVirtualDirectory.InternalAuthenticationMethods; adowaVirtualDirectory.WindowsAuthentication = true; string appPoolRootPath = IisUtility.GetAppPoolRootPath(metabaseServerName); string text = "MSExchangeOWAAppPool"; if (!IisUtility.Exists(appPoolRootPath, text, "IIsApplicationPool")) { using (DirectoryEntry directoryEntry = IisUtility.CreateApplicationPool(metabaseServerName, text)) { IisUtility.SetProperty(directoryEntry, "AppPoolIdentityType", 0, true); directoryEntry.CommitChanges(); } } if (!IisUtility.Exists(string.Join("/", array))) { DirectoryEntry directoryEntry2 = IisUtility.CreateWebDirObject(string.Join("/", array, 0, 6), adowaVirtualDirectory.FolderPathname, array[6]); ArrayList arrayList = new ArrayList(); arrayList.Add(new MetabaseProperty("LogonMethod", MetabasePropertyTypes.LogonMethod.ClearTextLogon)); arrayList.Add(new MetabaseProperty("AccessFlags", MetabasePropertyTypes.AccessFlags.Read | MetabasePropertyTypes.AccessFlags.Write | MetabasePropertyTypes.AccessFlags.Source | MetabasePropertyTypes.AccessFlags.Script)); arrayList.Add(new MetabaseProperty("DirBrowseFlags", (MetabasePropertyTypes.DirBrowseFlags) 3221225534U)); arrayList.Add(new MetabaseProperty("ScriptMaps", OwaVirtualDirectoryHelper.GetDavScriptMaps(), true)); if (adowaVirtualDirectory.VirtualDirectoryType == VirtualDirectoryTypes.Exchweb) { arrayList.Add(new MetabaseProperty("HttpExpires", "D, 0x278d00")); } if (adowaVirtualDirectory.DefaultDomain.Length > 0) { arrayList.Add(new MetabaseProperty("DefaultLogonDomain", adowaVirtualDirectory.DefaultDomain, true)); } OwaIsapiFilter.DisableFba(directoryEntry2); uint num = 0U; using (MultiValuedProperty <AuthenticationMethod> .Enumerator enumerator2 = adowaVirtualDirectory.InternalAuthenticationMethods.GetEnumerator()) { while (enumerator2.MoveNext()) { switch (enumerator2.Current) { case AuthenticationMethod.Basic: num |= 2U; break; case AuthenticationMethod.Digest: num |= 16U; break; case AuthenticationMethod.Ntlm: num |= 4U; break; case AuthenticationMethod.Fba: OwaIsapiFilter.EnableFba(directoryEntry2); break; } } } arrayList.Add(new MetabaseProperty("AuthFlags", num, true)); IisUtility.SetProperties(directoryEntry2, arrayList); IisUtility.AssignApplicationPool(directoryEntry2, text); } } } } }
public IEnumerable <T> GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new() { notFoundReason = null; return(session.FindPaged <T>(null, rootId, false, null, 0)); }
private static IEnumerable <ADComplianceProgram> GetDlpPolicies(IConfigDataProvider dataSession, string collectionName, QueryFilter filter) { ADComplianceProgramCollection dlpPolicyCollection = DlpUtils.GetDlpPolicyCollection(dataSession, collectionName); return(dataSession.FindPaged <ADComplianceProgram>(filter, dlpPolicyCollection.Id, false, null, 0)); }
IEnumerable <T> IIdentityParameter.GetObjects <T>(ObjectId rootId, IConfigDataProvider session, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { notFoundReason = null; return(session.FindPaged <T>(null, rootId, false, null, 0)); }