Exemple #1
0
        public override void OnNavigatingTo(INavigationParameters parameters)
        {
            if (parameters.ContainsKey("Movie"))
            {
                Movie = (UpcomingMovie)parameters["Movie"];
            }

            RaisePropertyChanged("Movie");
        }
Exemple #2
0
        public async void ItemAppearing(object parameter)
        {
            var upcomingMovie      = parameter as UpcomingMovie;
            int upcomingMovieIndex = UpcomingMovie.IndexOf(upcomingMovie);

            if (UpcomingMovie.Count - 2 <= upcomingMovieIndex)
            {
                await AddNextPageData();
            }
        }
Exemple #3
0
        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" }));
        }
Exemple #5
0
        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;
        }
Exemple #6
0
 public DetailsViewModel(INavigationService navigationService)
     : base(navigationService)
 {
     Movie = new UpcomingMovie();
     Title = "Movie";
 }