private async Task RunAndRescheduleNoThrow () { try { var logger = new SynchronizationLogger (_profileId, _profileName); using (AutomaticStopwatch.StartInfo (s_logger, string.Format ("Running synchronization profile '{0}'", _profileName))) { await _synchronizer.SynchronizeNoThrow (logger); } GC.Collect (); GC.WaitForPendingFinalizers (); var synchronizationReport = logger.GetReport(); _synchronizationReportRepository.AddReport (synchronizationReport); } catch (Exception x) { ExceptionHandler.Instance.HandleException (x, s_logger); } finally { _lastRun = DateTime.UtcNow; } }
private async Task RunIfResponsibleNoThrow (IEnumerable<string> itemsToSync) { try { var logger = new SynchronizationLogger (_profileId, _profileName); using (AutomaticStopwatch.StartInfo (s_logger, string.Format ("Running synchronization profile '{0}'", _profileName))) { await _synchronizer.SnychronizePartialNoThrow (itemsToSync, logger); } GC.Collect (); GC.WaitForPendingFinalizers (); var synchronizationReport = logger.GetReport(); _synchronizationReportRepository.AddReport (synchronizationReport); } catch (Exception x) { ExceptionHandler.Instance.HandleException (x, s_logger); } }
private async Task RunPartialNoThrow (IOutlookId[] itemsToSync) { try { var logger = new SynchronizationLogger (_profileId, _profileName); using (AutomaticStopwatch.StartInfo (s_logger, string.Format ("Partial sync: Running synchronization profile '{0}'", _profileName))) { await _synchronizer.SnychronizePartialNoThrow (itemsToSync, logger); } GC.Collect(); GC.WaitForPendingFinalizers(); var synchronizationReport = logger.GetReport(); _reportSink.PostReport (synchronizationReport); } catch (Exception x) { s_logger.Error (null, x); } }