public static IEnumerable<TraktSyncPausedEpisode> GetPausedEpisodes(out string lastEpisodeProcessedAt, bool ignoreLastSyncTime = false)
{
lastEpisodeProcessedAt = TraktSettings.LastSyncActivities.Episodes.PausedAt;
// get from cache regardless of last sync time
if (ignoreLastSyncTime)
return PausedEpisodes;
TraktLogger.Info("Getting current user paused episodes from trakt.tv");
// get the last time we did anything to our library online
var lastSyncActivities = LastSyncActivities;
// something bad happened e.g. site not available
if (lastSyncActivities == null || lastSyncActivities.Movies == null)
return null;
// check the last time we have against the online time
// if the times are the same try to load from cache
if (lastSyncActivities.Episodes.PausedAt == TraktSettings.LastSyncActivities.Episodes.PausedAt)
{
var cachedItems = PausedEpisodes;
if (cachedItems != null)
return cachedItems;
}
TraktLogger.Info("TV episode paused cache is out of date, requesting updated data. Local Date = '{0}', Online Date = '{1}'", TraktSettings.LastSyncActivities.Episodes.PausedAt ?? "<empty>", lastSyncActivities.Episodes.PausedAt ?? "<empty>");
// we get from online, local cache is not up to date
var onlineItems = TraktAPI.TraktAPI.GetPausedEpisodes();
if (onlineItems != null)
{
_PausedEpisodes = onlineItems;
// save to local file cache
SaveFileCache(EpisodesPausedFile, _PausedEpisodes.ToJSON());
// save new activity time for next time
TraktSettings.LastSyncActivities.Episodes.PausedAt = lastSyncActivities.Episodes.PausedAt;
}
return onlineItems;
}