private void bgTraktSync_DoWork(object sender, DoWorkEventArgs e) { MPTVSeriesLog.Write("Trakt: Synchronize Start"); buttonManualSync.Text = cButtonCancelSync; ConfigurationForm.GetInstance().EnableImportButtonState(false); List <DBSeries> seriesList = DBSeries.Get(new SQLCondition()); int progress = 0; foreach (DBSeries series in seriesList) { if (bgTraktSync.CancellationPending) { return; } if (series[DBSeries.cID] <= 0) { continue; } List <DBEpisode> episodesUnSeen = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.unseen); List <DBEpisode> episodesLibrary = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.library); List <DBEpisode> episodesSeen = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.seen); // remove any seen episodes from library episode list as 'seen' counts as being part of the library // dont want to hit the server unnecessarily episodesLibrary.RemoveAll(eps => episodesSeen.Contains(eps)); // sync UnSeen TraktHandler.SynchronizeLibrary(episodesUnSeen, TraktSyncModes.unseen); // sync library TraktHandler.SynchronizeLibrary(episodesLibrary, TraktSyncModes.library); // sync Seen TraktHandler.SynchronizeLibrary(episodesSeen, TraktSyncModes.seen); int percentage = Convert.ToInt32((double)(100 * progress++) / seriesList.Count()); bgTraktSync.ReportProgress(percentage); } MPTVSeriesLog.Write("Trakt: Synchronize Complete"); }
private void bgTraktSync_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { progressTraktSync.Value = 100; buttonManualSync.Text = cButtonFinishSync; ConfigurationForm.GetInstance().EnableImportButtonState(true); }