Esempio n. 1
0
        public DiscoverActionCreator(ITMDBService tmdbService, IAppStoreContainer storeContainer)
        {
            TMDBService = tmdbService;
            Store       = storeContainer.Store;

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

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

                dispatcher(new StartLoadingDiscoverPage());

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

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

                    return;
                }

                dispatcher(new FailedToLoadDiscoverPage
                {
                    Exception = response.ErrorException
                });
            };
        }