IEnumerable <T> IConfigDataProvider.FindPaged <T>(QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy, int pageSize) { FfoRecipientSession.LogUnsupportedQueryFilter(typeof(T), filter); foreach (T t in this.FindImpl <T>(filter, rootId, deepSearch, sortBy, pageSize)) { ConfigurableObject configurableObject = t as ConfigurableObject; if (configurableObject != null) { configurableObject.ResetChangeTracking(); } yield return(t); } yield break; }
private IEnumerable <T> FindImpl <T>(QueryFilter filter, ObjectId rootId, bool deepSearch, SortBy sortBy, int pageSize) where T : IConfigurable, new() { if (base.TenantId == null) { FfoDirectorySession.LogNotSupportedInFFO(null); } else { filter = this.AddFilterOperator(filter); if (typeof(T) == typeof(ExtendedSecurityPrincipal)) { filter = FfoRecipientSession.ReduceSecurityPrincipalFilter(filter); IEnumerable <ADUser> users = base.FindAndHandleException <ADUser>(filter, rootId, deepSearch, sortBy, pageSize); foreach (ADUser user in users) { yield return((T)((object)this.GetExtendedSecurityPrincipal(user))); } } else { IEnumerable <T> configObjs = base.FindAndHandleException <T>(base.AddTenantIdFilter(filter), rootId, deepSearch, sortBy, pageSize); foreach (T configObj in configObjs) { ADObject adObject = configObj as ADObject; if (adObject != null) { FfoDirectorySession.FixDistinguishedName(adObject, base.TenantId.DistinguishedName, base.TenantId.ObjectGuid, ((ADObjectId)adObject.Identity).ObjectGuid, null); yield return((T)((object)this.FixRecipientProperties(adObject))); } else { yield return(configObj); } } } } yield break; }