Exemple #1
0
        // Token: 0x06001AA8 RID: 6824 RVA: 0x0006FB70 File Offset: 0x0006DD70
        private static ExpansionControl InvokeRecipientDelegate(ADRecipientExpansion.HandleRecipientDelegate handleRecipient, ADRawEntry recipient, ExpansionType expansionType, ADRecipientExpansion.ExpandableEntry parent)
        {
            if (handleRecipient == null)
            {
                return(ExpansionControl.Continue);
            }
            ExpansionType expansionType2 = (parent == null) ? ExpansionType.None : parent.ExpansionType;

            ExTraceGlobals.ADExpansionTracer.TraceDebug(0L, "Invoking recipient delegate: recipient={0}; expansion-type={1}; parent={2}; parent-expansion-type={3}", new object[]
            {
                recipient[ADObjectSchema.Id],
                ADRecipientExpansion.GetExpansionTypeString(expansionType),
                (parent == null) ? "<null>" : parent.Entry[ADObjectSchema.Id],
                ADRecipientExpansion.GetExpansionTypeString(expansionType2)
            });
            ExpansionControl expansionControl = handleRecipient(recipient, expansionType, (parent == null) ? null : parent.Entry, expansionType2);

            ExTraceGlobals.ADExpansionTracer.TraceDebug <string>(0L, "Delegate returned '{0}'", ADRecipientExpansion.GetExpansionControlString(expansionControl));
            return(expansionControl);
        }
Exemple #2
0
        // Token: 0x06001AB3 RID: 6835 RVA: 0x000700C4 File Offset: 0x0006E2C4
        private bool ProcessChild(ADRawEntry child, ADRecipientExpansion.ExpandableEntry parent, ADRecipientExpansion.HandleRecipientDelegate handleRecipient, ADRecipientExpansion.HandleFailureDelegate handleFailure, Stack <ADRecipientExpansion.ExpandableEntry> expansionStack)
        {
            ExpansionFailure failure       = ExpansionFailure.NotMailEnabled;
            bool             flag          = false;
            ExpansionType    expansionType = ADRecipientExpansion.GetExpansionType(child);

            ExTraceGlobals.ADExpansionTracer.TraceDebug <object, string>((long)this.GetHashCode(), "Processing recipient {0} with expansion type {1}", child[ADObjectSchema.Id], ADRecipientExpansion.GetExpansionTypeString(expansionType));
            if (!this.ignoreMailEnabledCase && !this.IsMailEnabled(child))
            {
                failure = ExpansionFailure.NotMailEnabled;
                flag    = true;
            }
            if (!flag && !this.IsAuthorized(child))
            {
                failure = ExpansionFailure.NotAuthorized;
                flag    = true;
            }
            if (!flag && expansionType != ExpansionType.None && this.IsLoopDetected(child, parent))
            {
                failure = ExpansionFailure.LoopDetected;
                flag    = true;
            }
            if (flag)
            {
                return(ADRecipientExpansion.InvokeFailureDelegate(handleFailure, failure, child, expansionType, parent) != ExpansionControl.Terminate);
            }
            ExpansionControl expansionControl = ExpansionControl.Continue;

            if (expansionType != ExpansionType.ContactChain)
            {
                expansionControl = ADRecipientExpansion.InvokeRecipientDelegate(handleRecipient, child, expansionType, parent);
            }
            if (expansionControl == ExpansionControl.Terminate)
            {
                return(false);
            }
            if (expansionControl != ExpansionControl.Skip && expansionType != ExpansionType.None)
            {
                expansionStack.Push(new ADRecipientExpansion.ExpandableEntry(child, expansionType, parent));
                ExTraceGlobals.ADExpansionTracer.TraceDebug((long)this.GetHashCode(), "Recipient {0} pushed on the expansion stack", new object[]
                {
                    child[ADObjectSchema.Id]
                });
            }
            return(true);
        }