TraktMoviesTrending GetTrendingMovies(int page)
{
TraktMoviesTrending trendingMovies = null;
if (TrendingMoviePages == null || LastRequest < DateTime.UtcNow.Subtract(new TimeSpan(0, TraktSettings.WebRequestCacheMinutes, 0)))
{
// get the first page
trendingMovies = TraktAPI.TraktAPI.GetTrendingMovies(1, TraktSettings.MaxTrendingMoviesRequest);
// reset to defaults
LastRequest = DateTime.UtcNow;
CurrentPage = 1;
PreviousSelectedIndex = 0;
// clear the cache
if (TrendingMoviePages == null)
TrendingMoviePages = new Dictionary<int, TraktMoviesTrending>();
else
TrendingMoviePages.Clear();
// add page to cache
TrendingMoviePages.Add(1, trendingMovies);
}
else
{
// get page from cache if it exists
if (TrendingMoviePages.TryGetValue(page, out trendingMovies))
{
return trendingMovies;
}
// request next page
trendingMovies = TraktAPI.TraktAPI.GetTrendingMovies(page, TraktSettings.MaxTrendingMoviesRequest);
if (trendingMovies != null && trendingMovies.Movies != null)
{
// add to cache
TrendingMoviePages.Add(page, trendingMovies);
}
}
return trendingMovies;
}