Exemple #1
0
        public async Task <ResponseCarrier> GetMovieListDetail(ICacheService cacheService)
        {
            try
            {
                if (!cacheService.IsCached("moviedata"))
                {
                    var allMovie = await GetAllMovieList();

                    MoviesCollection mCollection = allMovie as MoviesCollection;
                    if (mCollection != null && mCollection.Movies != null && mCollection.Movies.Count > 0)
                    {
                        List <BaseMovieModel> movieList = new List <BaseMovieModel>();
                        foreach (BaseMovieModel mModel in mCollection.Movies)
                        {
                            movieList.Add(mModel);
                        }
                        cacheService.WriteCache("moviedata", movieList, MovieConfig.CacheExpirationMinute);
                    }
                }
                List <BaseMovieModel> mlist = cacheService.ReadCache <object>("moviedata") as List <BaseMovieModel>;
                if (mlist != null)
                {
                    List <MovieModel> result = new List <MovieModel>();
                    if (mlist != null)
                    {
                        var tasks = mlist.Select(movie => GetMovieDetail(movie.ID));
                        var mColl = await Task.WhenAll(tasks);

                        //var mColl = await Task.WhenAll(mlist.Select(i => result.Add(GetMovieDetail(i))));
                        foreach (ResponseCarrier res in mColl)
                        {
                            if (res.Status)
                            {
                                result.Add((MovieModel)res.PayLoad);
                            }
                        }
                        return(new ResponseCarrier()
                        {
                            Status = true, PayLoad = result, ErrorMessage = string.Empty
                        });
                    }
                }
                return(new ResponseCarrier()
                {
                    Status = false, PayLoad = null, ErrorMessage = "No Data Available."
                });
            }
            catch (Exception ex)
            {
                return(new ResponseCarrier()
                {
                    Status = false, PayLoad = null, ErrorMessage = "Error in fetching movies."
                });
            }
        }
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            MoviesCollection = await _context.MoviesCollection.FirstOrDefaultAsync(m => m.Moviescollection_Id == id);

            if (MoviesCollection == null)
            {
                return(NotFound());
            }
            return(Page());
        }
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            MoviesCollection = await _context.MoviesCollection.FindAsync(id);

            if (MoviesCollection != null)
            {
                _context.MoviesCollection.Remove(MoviesCollection);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Exemple #4
0
        public async Task <MoviesCollection> GetAllMovieList()
        {
            MoviesCollection mCollection     = null;
            string           getMovieListUri = string.Format(MovieConfig.WebAPIUrl, "cinemaworld", "movies");

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add(MovieConfig.RequesetHeader1Key, MovieConfig.RequestHeader1Value);
                var result = await client.GetAsync((getMovieListUri));

                if (result.IsSuccessStatusCode)
                {
                    string responseStr = await result.Content.ReadAsStringAsync();

                    mCollection = JsonConvert.DeserializeObject <MoviesCollection>(responseStr);
                }
            }
            return(mCollection);
        }
        public static Dictionary <string, MoviesCollection> GetMockMovies(int worldCount, int movieCount)
        {
            var allMovies = new Dictionary <string, MoviesCollection>();

            for (int i = 0; i < worldCount; i++)
            {
                var movieCollection = new MoviesCollection {
                    Movies = new List <Movie>()
                };
                for (int j = 0; j < movieCount; j++)
                {
                    movieCollection.Movies.Add(new Movie()
                    {
                        ID = $"cw{i.ToString()}{j.ToString()}123"
                    });
                }
                allMovies.Add(i.ToString(), movieCollection);
            }
            return(allMovies);
        }
Exemple #6
0
        public void Load()
        {
            try
            {
                string   apiUri    = Constants.ApiConstants.GetMoviesByReleaseAndLanguage;
                string[] queryArgs = { "2018-01-15", "2018-01-22", Constants.ApiConstants.spanishCode }; // dateReleaseMin, dateReleaseMax, languageCode

                // Este .Subscribe se ejecutará dos veces, la primera con la info cacheada, y la segunda con la info que se traiga de la llamada a la API Rest
                _repository.GetItems <Movie, MoviesCollection>(apiUri, queryArgs).Subscribe(
                    cachedThenUpdatedMoviesCollection => {
                    MoviesCollection = cachedThenUpdatedMoviesCollection;
                    if (IsBusy)
                    {
                        IsBusy = false;
                    }
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #7
0
        private void InitProperties()
        {

            _yatse2Properties = TryFindResource("Yatse2Properties") as Yatse2Properties;
            _moviesDataSource = TryFindResource("MoviesDataSource") as MoviesCollection;
            _moviesCollectionView =
                (CollectionView)CollectionViewSource.GetDefaultView(lst_Movies_flow.ItemsSource);
            _tvShowsDataSource = TryFindResource("TvShowsDataSource") as TvShowsCollection;
            _tvShowsCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(lst_TvShows_flow.ItemsSource);
            _tvSeasonsDataSource = TryFindResource("TvSeasonsDataSource") as TvSeasonsCollection;
            _tvSeasonsCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(lst_TvSeasons_flow.ItemsSource);
            _tvEpisodesDataSource = TryFindResource("TvEpisodesDataSource") as TvEpisodesCollection;
            _tvEpisodesCollectionView =
                (CollectionView)CollectionViewSource.GetDefaultView(lst_TvEpisodes_flow.ItemsSource);
            _audioAlbumsDataSource = TryFindResource("AudioAlbumsDataSource") as AudioAlbumsCollection;
            _audioAlbumsCollectionView =
                (CollectionView)CollectionViewSource.GetDefaultView(lst_AudioAlbums_flow.ItemsSource);
            _audioArtistsDataSource = TryFindResource("AudioArtistsDataSource") as AudioArtistsCollection;
            _audioArtistsCollectionView =
                (CollectionView)CollectionViewSource.GetDefaultView(lst_AudioArtists_flow.ItemsSource);
            _audioGenresDataSource = TryFindResource("AudioGenresDataSource") as AudioGenresCollection;
            _audioGenresCollectionView =
                (CollectionView)CollectionViewSource.GetDefaultView(lst_AudioGenres_flow.ItemsSource);
            _audioSongsDataSource = TryFindResource("AudioSongsDataSource") as AudioSongsCollection;

            _moviesCollectionView.Filter = new Predicate<object>(FilterMovies);
            _tvShowsCollectionView.Filter = new Predicate<object>(FilterTvShows);
            _audioAlbumsCollectionView.Filter = new Predicate<object>(FilterAudioAlbum);
            _audioArtistsCollectionView.Filter = new Predicate<object>(FilterAudioArtist);
            _audioGenresCollectionView.Filter = new Predicate<object>(FilterAudioGenre);
        }