TraktPlugin.Configuration.StartSync C# (CSharp) Méthode

StartSync() private méthode

private StartSync ( ) : void
Résultat void
        private void StartSync()
        {
            SetSyncControlProperties(true);

            var syncThread = new Thread(() =>
                {
                    if (TraktSettings.AccountStatus != ConnectionState.Connected)
                    {
                        // stop sync
                        SetSyncControlProperties(false);
                        TraktSettings.AccountStatus = ConnectionState.Pending;
                        return;
                    }

                    TraktLogger.Info("Library and Playback Sync started for 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;

                    foreach (var item in clbPlugins.CheckedItems)
                    {
                        try
                        {
                            switch (item.ToString())
                            {
                                case "Moving Pictures":
                                    var movingPictures = new MovingPictures(TraktSettings.MovingPictures);
                                    movingPictures.SyncLibrary();
                                    movingPictures.SyncProgress();
                                    break;

                                case "MP-TVSeries":
                                    var tvSeries = new TVSeries(TraktSettings.TVSeries);
                                    tvSeries.SyncLibrary();
                                    tvSeries.SyncProgress();
                                    break;

                                case "My Videos":
                                    var myVideos = new MyVideos(TraktSettings.MyVideos);
                                    myVideos.SyncLibrary();
                                    myVideos.SyncProgress();
                                    break;

                                case "My Films":
                                    var myFilms = new MyFilmsHandler(TraktSettings.MyFilms);
                                    myFilms.SyncLibrary();
                                    myFilms.SyncProgress();
                                    break;
                            }
                        }
                        catch (Exception ex)
                        {
                            TraktLogger.Error("Error synchronising library, Plugin = '{0}', Error = '{1}'", item.ToString(), ex.Message);
                            continue;
                        }
                    }

                    // save user activity cache
                    TraktCache.Save();

                    TraktLogger.Info("Library and Playback Sync completed for all enabled plugins");
                    SetSyncControlProperties(false);

                    if (SilentMode || AutoCloseAfterSync)
                    {
                        CloseConfig();
                    }
                })
                {
                    Name = "Sync",
                    IsBackground = true
                };

            syncThread.Start();
        }