TraktPlugin.TraktPlugin.syncLibraryWorker_DoWork C# (CSharp) Method

syncLibraryWorker_DoWork() private method

Logic for the Sync background worker
private syncLibraryWorker_DoWork ( object sender, DoWorkEventArgs e ) : void
sender object
e DoWorkEventArgs
return void
        private void syncLibraryWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            LibrarySyncRunning = true;
            SyncStartTime = DateTime.UtcNow;

            Thread.CurrentThread.Name = "Sync";

            if (TraktSettings.AccountStatus != ConnectionState.Connected)
                return;

            TraktLogger.Info("Started 2-way sync of all enabled plugins");

            // get data from online and store in cache so its readily available for plugin sync
            // data will also be used in user activity feed on the dashboard
            if (!TraktCache.RefreshData())
                return;

            // user could change handlers during sync from Settings GUI so assign to a new list
            var traktHandlers = new List<ITraktHandler>(TraktHandlers);
            foreach (var traktHandler in traktHandlers)
            {
                if (syncLibraryWorker.CancellationPending)
                    return;

                try
                {
                    traktHandler.SyncLibrary();
                }
                catch (Exception ex)
                {
                    TraktLogger.Error("Error synchronising library. Plugin = '{0}', Error = '{1}'", traktHandler.Name, ex.Message);
                }
            }
        }