Ejemplo n.º 1
0
        public FavoriteActionCreator(ITMDBService tmdbService, IAppStoreContainer storeContainer)
        {
            TMDBService = tmdbService;
            Store       = storeContainer.Store;

            LoadNextPageAction = async(dispatcher, getState) =>
            {
                var state = getState().FavoriteState;

                if (state.TotalPages != 0 && state.LastLoadedPage == state.TotalPages)
                {
                    return;
                }

                dispatcher(new StartLoadingFavouritePage());

                var response = await TMDBService.GetFavoriteMovies(++state.LastLoadedPage);

                if (response.IsSuccessful)
                {
                    dispatcher(new FavouritePageLoaded
                    {
                        Page       = response.Data.Page,
                        TotalPages = response.Data.TotalPages,
                        NewPage    = response.Data.Results
                    });

                    return;
                }

                dispatcher(new FailedToLoadFavouritePage
                {
                    Exception = new System.Exception(response.Data.StatusMessage)
                });
            };
        }