Esempio n. 1
0
        /// <inheritdoc cref="ISyncSession.StartFailover"/>.
        public void StartFailover()
        {
            _log.DebugFormat($"Failover synchronization of {_senderEmailAddress} started");
            var mailbox   = GetMailbox();
            var sinceDate = ListenerUtils.GetFailoverPeriodStartDate(mailbox, _userConnection);
            var filters   = mailbox.GetFromDateFilters(_userConnection, sinceDate);

            StartSynchronization(mailbox, filters);
            _log.DebugFormat($"Failover synchronization of {_senderEmailAddress} initialization ended");
        }
Esempio n. 2
0
 /// <summary>
 /// Calls <paramref name="action"/> and handles thrown exceptions.
 /// </summary>
 /// <param name="action">Authentication action.</param>
 /// <param name="senderEmailAddress">Mailbox address.</param>
 private void TryDoListenerAction(string senderEmailAddress, Action action)
 {
     try {
         ListenerUtils.TryDoListenerAction(action, senderEmailAddress, UserConnection);
     } catch (Exception e) {
         var exceptionMessage = e.GetType() == typeof(AggregateException)
                                 ? e.InnerException.Message
                                 : e.Message;
         _log.Error(exceptionMessage, e);
         throw;
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Starts mailbox synchronization.
        /// </summary>
        /// <param name="mailbox"><see cref="Mailbox"/> instance.</param>
        /// <param name="filters">Synchronization session filters.</param>
        private void StartSynchronization(Mailbox mailbox, string filters)
        {
            if (!mailbox.CheckSynchronizationSettings())
            {
                _log.Warn($"mailbox {mailbox.SenderEmailAddress} synchronization settings not valid");
                return;
            }
            var    credentials   = GetCredentials(mailbox);
            var    emailProvider = GetProvider();
            Action action        = () => {
                emailProvider.StartSynchronization(credentials, filters);
            };

            try {
                ListenerUtils.TryDoListenerAction(action, credentials.SenderEmailAddress, _userConnection);
            } catch (Exception e) {
                _log.Error($"Synchronization of {_senderEmailAddress} failed", e);
                throw;
            }
        }
 /// <summary>
 /// Starts email synchronization process for period.
 /// </summary>
 /// <param name="mailboxId">Mailbox unique identifier.</param>
 protected void StartPeriodSyncJob(Mailbox mailbox)
 {
     try {
         if (GetIsFeatureEnabled("EmailIntegrationV2"))
         {
             var syncSession = ClassFactory.Get <ISyncSession>("Email", new ConstructorArgument("uc", UserConnection),
                                                               new ConstructorArgument("senderEmailAddress", mailbox.SenderEmailAddress));
             syncSession.StartFailover();
             return;
         }
         var syncDate   = ListenerUtils.GetFailoverPeriodStartDate(mailbox, UserConnection);
         var parameters = new Dictionary <string, object> {
             { "SenderEmailAddress", mailbox.SenderEmailAddress },
             { "LoadEmailsFromDate", syncDate },
             { "MailboxType", mailbox.TypeId },
             { "PeriodInMinutes", 0 }
         };
         var syncJobScheduler = ClassFactory.Get <ISyncJobScheduler>();
         syncJobScheduler.CreateSyncJob(UserConnection, parameters);
     } catch (Exception e) {
         _log.ErrorFormat("Email synchronization process  for {0} mailbox not started.", e, mailbox.Id);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Returns is feature enabled for <paramref name="uc"/>.
 /// </summary>
 /// <param name="uc"><see cref="UserConnection"/> instance.</param>
 /// <param name="code">Feature code.</param>
 /// <returns><c>True</c> if feature enabled, otherwise returns false.</returns>
 private bool GetIsFeatureDisabled(string code)
 {
     return(ListenerUtils.GetIsFeatureDisabled(UserConnection, code));
 }