// Token: 0x06000DED RID: 3565 RVA: 0x00029C98 File Offset: 0x00027E98
        internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            notFoundReason = new LocalizedString?(LocalizedString.Empty);
            EnumerableWrapper <T> enumerableWrapper = EnumerableWrapper <T> .Empty;
            SecurityIdentifier    sid     = SecurityPrincipalIdParameter.TryParseToSID(base.RawIdentity);
            string userAccountNameFromSid = SecurityPrincipalIdParameter.GetUserAccountNameFromSid(sid, this.ToString(), null);

            if (!string.IsNullOrEmpty(userAccountNameFromSid))
            {
                enumerableWrapper = base.GetEnumerableWrapper <T>(enumerableWrapper, base.GetObjectsByAccountName <T>(userAccountNameFromSid, rootId, (IRecipientSession)session, optionalData));
                if (enumerableWrapper.HasElements())
                {
                    return(enumerableWrapper);
                }
            }
            enumerableWrapper = base.GetEnumerableWrapper <T>(enumerableWrapper, base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));
            if (enumerableWrapper.HasElements())
            {
                return(enumerableWrapper);
            }
            sid = SecurityPrincipalIdParameter.GetUserSidAsSAMAccount(this, null, null);
            userAccountNameFromSid = SecurityPrincipalIdParameter.GetUserAccountNameFromSid(sid, this.ToString(), null);
            if (!string.IsNullOrEmpty(userAccountNameFromSid))
            {
                enumerableWrapper = base.GetEnumerableWrapper <T>(EnumerableWrapper <T> .Empty, base.GetObjectsByAccountName <T>(userAccountNameFromSid, rootId, (IRecipientSession)session, optionalData));
            }
            return(enumerableWrapper);
        }
        // Token: 0x06000DF7 RID: 3575 RVA: 0x00029FF0 File Offset: 0x000281F0
        private IEnumerable <T> GetUserAccountFromSid <T>(SecurityIdentifier sid, string user, Task.TaskErrorLoggingDelegate logError, ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) where T : IConfigurable, new()
        {
            notFoundReason = null;
            string userAccountNameFromSid = SecurityPrincipalIdParameter.GetUserAccountNameFromSid(sid, user, logError);

            if (!string.IsNullOrEmpty(userAccountNameFromSid))
            {
                SecurityPrincipalIdParameter securityPrincipalIdParameter = this.CreateSidParameter(userAccountNameFromSid);
                return(securityPrincipalIdParameter.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));
            }
            return(null);
        }