Exemple #1
0
        // Token: 0x060003DF RID: 991 RVA: 0x0000E768 File Offset: 0x0000C968
        protected override void WriteResult(IConfigurable dataObject)
        {
            TaskLogger.LogEnter();
            IDirectorySession directorySession = base.DataSession as IDirectorySession;
            IConfigurable     configurable     = dataObject;

            if (this.ReadFromDomainController.IsPresent && directorySession != null && directorySession.UseGlobalCatalog)
            {
                try
                {
                    directorySession.UseGlobalCatalog = false;
                    base.WriteVerbose(Strings.VerboseRereadADObject(dataObject.Identity.ToString(), typeof(TDataObject).Name, ((ADObjectId)dataObject.Identity).ToDNString()));
                    configurable = base.DataSession.Read <TDataObject>(dataObject.Identity);
                    base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession));
                }
                finally
                {
                    directorySession.UseGlobalCatalog = true;
                }
            }
            ADRecipient adrecipient = configurable as ADRecipient;

            if (adrecipient != null)
            {
                adrecipient.PopulateAcceptMessagesOnlyFromSendersOrMembers();
                adrecipient.PopulateBypassModerationFromSendersOrMembers();
                adrecipient.PopulateRejectMessagesFromSendersOrMembers();
                GetRecipientObjectTask <TIdentity, TDataObject> .SanitizeMailTips(adrecipient);
            }
            if (configurable == null)
            {
                base.WriteVerbose(Strings.VerboseFailedToReadFromDC(dataObject.Identity.ToString(), base.DataSession.Source));
            }
            else if (this.ShouldSkipObject(configurable))
            {
                base.WriteVerbose(Strings.VerboseSkipObject(configurable.Identity.ToString()));
            }
            else
            {
                IConfigurable configurable2 = this.ConvertDataObjectToPresentationObject(configurable);
                if (this.ShouldSkipPresentationObject(configurable2))
                {
                    base.WriteVerbose(Strings.VerboseSkipObject(configurable.Identity.ToString()));
                }
                else
                {
                    base.WriteResult(configurable2);
                }
            }
            TaskLogger.LogExit();
        }