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