public override void OnNavigatingTo(INavigationParameters parameters) { if (parameters.ContainsKey("Movie")) { Movie = (UpcomingMovie)parameters["Movie"]; } RaisePropertyChanged("Movie"); }
public async void ItemAppearing(object parameter) { var upcomingMovie = parameter as UpcomingMovie; int upcomingMovieIndex = UpcomingMovie.IndexOf(upcomingMovie); if (UpcomingMovie.Count - 2 <= upcomingMovieIndex) { await AddNextPageData(); } }
public async Task AddNextPageData() { try { if (Page == 0) { UpcomingMovie.Clear(); } if (Page <= TotalPages) { Page++; UpcomingMovieRequest upcomingMovie = new UpcomingMovieRequest() { page = Page, api_key = Settings.TMDbApiKey }; UpcomingMovieResult upcomingMovies; if (!String.IsNullOrWhiteSpace(Search)) { upcomingMovie.query = Search; upcomingMovies = await _tMDbService.GetUpcomingMoviesSearchAsync(upcomingMovie); } else { upcomingMovies = await _tMDbService.GetUpcomingMovies(upcomingMovie); } TotalPages = upcomingMovies.TotalPages; Page = upcomingMovies.Page; foreach (var item in upcomingMovies.Results) { item.Genres = await GetGenrer(item.GenreIds); UpcomingMovie.Add(item); } } } catch (ServiceAuthenticationException ex) { await _pageDialogService.DisplayAlertAsync("Error", "Some error occurs when try access the Server, please try again!", "OK"); } catch (HttpRequestExceptionEx ex) { await _pageDialogService.DisplayAlertAsync("Error", "Service is not respond, please try again later!", "OK"); } catch (Exception ex) { await _pageDialogService.DisplayAlertAsync("Error", "Unexpected error, please try again!", "OK"); } }
public IActionResult Create(MovieCreationBindingModel model) { if (!ModelState.IsValid) { return(View()); } var director = this.context.Directors.FirstOrDefault(d => d.FullName == model.Director); if (director == null) { director = new Director() { FullName = model.Director, ImageUrl = model.DirectorImageUrl }; this.context.Directors.Add(director); this.context.SaveChanges(); } var movie = new UpcomingMovie { Title = model.Title, Director = director, Genre = model.Genre, Lenght = model.Lenght, ReleaseDate = model.ReleaseDate, Actors = model.Actors, Description = model.Description, Reviews = new List <Review>(), ImageUrl = model.ImageUrl }; if (this.context.UpcomingMovies.Any(m => m.Title == movie.Title) || this.context.Movies.Any(m => m.Title == movie.Title)) { return(RedirectToAction("Create", "UpcomingMovies", new { area = "admin" })); } this.context.UpcomingMovies.Add(movie); context.SaveChanges(); return(RedirectToAction("Index", "UpcomingMovies", new { area = "admin" })); }
private async Task LoadAllMovies() { if (!CanLoadMore || IsBusy) { return; } IsBusy = true; var upcomingMovieResult = new UpcomingMovie(); while (CanLoadMore) { int pageToLoad = upcomingMovieResult.Page + 1; upcomingMovieResult = await _upcomingMovieService.GetUpcomingMoviesAsync(pageToLoad); if (upcomingMovieResult.Succeeded) { CanLoadMore = upcomingMovieResult.Page != upcomingMovieResult.TotalPages; foreach (var movie in upcomingMovieResult.Movies) { Movies.Add(movie); _allMovies.Add(movie); } } else { CanLoadMore = false; await _dialogService.DisplayAlertAsync("Error", $"Oops... Some error occurred and we can't load the movies.\n\nReason: {upcomingMovieResult.ErrorMessage}", "Ok"); break; } } IsBusy = false; }
public DetailsViewModel(INavigationService navigationService) : base(navigationService) { Movie = new UpcomingMovie(); Title = "Movie"; }