コード例 #1
0
        public void NewEmail(ExchangeEmailEvent newEvent)
        {
            _log.InfoFormat("NewEmail itemId length = {0}, timestamp = {1}, id = {2}, username= {3}, eventIds = {4}",
                            newEvent.UniqueIds.Length, newEvent.EventTimeStamp, newEvent.Id, newEvent.SysAdminUnitName,
                            GetReadableEventsList(newEvent.UniqueIds));
            var processor = ClassFactory.Get <IExchangeEventsProcessor>();

            processor.ProcessNewEmail(newEvent);
        }
コード例 #2
0
        /// <summary>
        /// Processes new exchange email event.
        /// Creates <see cref="ExchangeEmailEventExecutor"/> instance and executes with <paramref name="uniqueId"/>.
        /// </summary>
        /// <param name="emailEvent">New exchange email event.</param>
        public void ProcessNewEmail(ExchangeEmailEvent emailEvent)
        {
            var    userName              = emailEvent.SysAdminUnitName;
            var    userConnection        = CreateUserConnection(userName, emailEvent.TimeZoneId);
            Guid   mailboxSyncSettingsId = new Guid(emailEvent.Id);
            string senderEmailAddress    = GetMailboxAddress(userConnection, mailboxSyncSettingsId);
            var    parameters            = new Dictionary <string, object> {
                { "SenderEmailAddress", senderEmailAddress },
                { "ItemIds", emailEvent.UniqueIds },
                { "EventTimestamp", emailEvent.EventTimeStamp }
            };

            try {
                StartSynchronization(userConnection, parameters);
            } finally {
                userConnection?.Close(SessionEndMethod.Logout, false);
            }
        }