Exemplo n.º 1
0
        public override void Initialize(TransactionalRequestJob syncRequest)
        {
            base.Initialize(syncRequest);
            base.RequestJobIdentity      = syncRequest.Identity.ToString();
            base.IncrementalSyncInterval = syncRequest.IncrementalSyncInterval;
            Guid targetExchangeGuid = syncRequest.TargetExchangeGuid;
            MailboxCopierFlags mailboxCopierFlags = MailboxCopierFlags.None;
            LocalizedString    sourceTracingID    = LocalizedString.Empty;

            switch (syncRequest.SyncProtocol)
            {
            case SyncProtocol.Imap:
                mailboxCopierFlags |= MailboxCopierFlags.Imap;
                sourceTracingID     = MrsStrings.ImapTracingId(syncRequest.EmailAddress.ToString());
                break;

            case SyncProtocol.Eas:
                mailboxCopierFlags |= MailboxCopierFlags.Eas;
                sourceTracingID     = MrsStrings.EasTracingId(syncRequest.EmailAddress.ToString());
                break;

            case SyncProtocol.Pop:
                mailboxCopierFlags |= MailboxCopierFlags.Pop;
                sourceTracingID     = MrsStrings.PopTracingId(syncRequest.EmailAddress.ToString());
                break;
            }
            string orgID = (syncRequest.OrganizationId != null && syncRequest.OrganizationId.OrganizationalUnit != null) ? (syncRequest.OrganizationId.OrganizationalUnit.Name + "\\") : string.Empty;

            base.MailboxMerger = new MailboxMerger(Guid.Empty, targetExchangeGuid, syncRequest, this, mailboxCopierFlags, sourceTracingID, MrsStrings.PrimaryMailboxTracingId(orgID, targetExchangeGuid));
        }