Beispiel #1
0
        private static void SynchronizeAccount(MailsTask task)
        {
            try
            {
                if (!task.HasFinishedForward)
                {
                    MailsTasksHandler.SynchronizeForward(task);
                }
                else if (!task.HasFinishedBackward)
                {
                    MailsTasksHandler.SynchronizeBackward(task);
                }

                if (task.HasFinished)
                {
                    MailsTasksHandler.EndSynchronization(task);
                    return;
                }

                MailsTasksHandler.StartMailsTask(task);
            }
            catch (Exception exc)
            {
                Log.LogException(exc, "Error sincronizando cuenta, parametros: mailAccount:" +
                                 task.MailAccount.Entity.Address + " lowestUidLocal:" +
                                 task.LowestUidLocal.ToString() + " lowestUidExternal:" +
                                 task.LowestUidExternal.ToString() + " highestUidLocal:" +
                                 task.HighestUidLocal.ToString() + " highestUidExternal:" +
                                 task.HighestUidExternal.ToString() + " hasFinished:" +
                                 task.HasFinished.ToString() + " hasFinishedForward:" +
                                 task.HasFinishedForward.ToString() + " nextUidForward:" +
                                 task.NextUidForward.ToString() + " hasFinishedBackward:" +
                                 task.HasFinishedBackward.ToString() + " nextUidBackward:" +
                                 task.NextUidBackward.ToString() + " labelName:" +
                                 task.Label.Entity.Name);
                if (MailsTasksHandler.forceContinueOnError)
                {
                    task.SkipCicle();
                    MailsTasksHandler.StartMailsTask(task);
                }
                else
                {
                    MailsTasksHandler.EndSynchronization(task);
                    throw;
                }
            }
        }