private void ExecuteForAllAssociations(Action <MailboxAssociationFromStore, IAssociationAdaptor, ADUser, IExtensibleLogger> task, BaseAssociationAdaptor associationAdaptor, IExtensibleLogger logger)
        {
            MailboxAssociationContext.Tracer.TraceDebug <string>((long)this.GetHashCode(), "MailboxAssociationContext.ExecuteForAllAssociations [{0}]: Querying all associations for the mailbox.", this.cmdletName);
            IEnumerable <MailboxAssociation> allAssociations = associationAdaptor.GetAllAssociations();

            foreach (MailboxAssociation mailboxAssociation in allAssociations)
            {
                MailboxAssociation mailboxAssociation2 = mailboxAssociation;
                if (this.includeNotPromotedProperties)
                {
                    MailboxAssociationContext.Tracer.TraceDebug <string>((long)this.GetHashCode(), "MailboxAssociationContext.ExecuteForAllAssociations [{0}]: Querying association by ItemId to retrieve not promoted properties.", this.cmdletName);
                    mailboxAssociation2 = this.GetAssociationByItemId(associationAdaptor, mailboxAssociation);
                }
                MailboxAssociationContext.Tracer.TraceDebug <string, MailboxAssociation>((long)this.GetHashCode(), "MailboxAssociationContext.ExecuteForAllAssociations [{0}]: Found association {1}", this.cmdletName, mailboxAssociation);
                task(mailboxAssociation2 as MailboxAssociationFromStore, associationAdaptor, this.mailbox, logger);
            }
        }
        private MailboxAssociation GetAssociationByItemId(BaseAssociationAdaptor associationAdaptor, MailboxAssociation association)
        {
            MailboxAssociationContext.Tracer.TraceDebug <string>((long)this.GetHashCode(), "MailboxAssociationContext.GetAssociationByItemId [{0}]: Querying association by its item id", this.cmdletName);
            MailboxAssociationFromStore mailboxAssociationFromStore = association as MailboxAssociationFromStore;

            if (mailboxAssociationFromStore != null)
            {
                association = associationAdaptor.GetAssociation(mailboxAssociationFromStore.ItemId);
            }
            return(association);
        }