// Token: 0x06001AD7 RID: 6871 RVA: 0x00070978 File Offset: 0x0006EB78 private bool TryIsSenderMemberOfWithLimit(IEnumerable <ADObjectId> groupIdList, out bool isSenderMemberOf) { isSenderMemberOf = false; if (groupIdList == null) { return(true); } if (this.CheckMemberOfGroupInformationInCache(groupIdList)) { ADRecipientRestriction.tracer.TraceDebug <ADObjectId>((long)this.GetHashCode(), "Found the IsMemberOf info in cache: {0}", this.senderId); isSenderMemberOf = true; return(true); } foreach (ADObjectId adobjectId in groupIdList) { bool flag; if (this.memberOfGroupsCache != null && this.memberOfGroupsCache.TryGetValue(adobjectId, out flag)) { ADRecipientRestriction.tracer.TraceDebug <ADObjectId, bool>((long)this.GetHashCode(), "Found the MemberOfGroup info in Cache: {0} : {1}", this.senderId, flag); ExAssert.RetailAssert(!flag, "We should have checked the cache before going to AD."); } else { if (!ADRecipient.TryIsMemberOfWithLimit(this.senderId, adobjectId, false, this.Session, ref this.adQueryLimit, out flag)) { if (this.isFirstGroupSearch) { this.AddMemberOfGroup(adobjectId, false); } this.isFirstGroupSearch = false; return(false); } this.isFirstGroupSearch = false; this.AddMemberOfGroup(adobjectId, flag); if (flag) { ADRecipientRestriction.tracer.TraceDebug <ADObjectId, ADObjectId>((long)this.GetHashCode(), "Sender {0} is a member of group {1}", this.senderId, adobjectId); isSenderMemberOf = true; return(true); } } } return(true); }