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")); }
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); }
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; } }
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); }