public async Task <IActionResult> RemoveFromShoppingCart(string orderId, int movieId)
        {
            ApplicationUser customer = null;

            if (User.Identity.Name != null)
            {
                customer = await _userManager.FindByNameAsync(User.Identity.Name);
            }

            if (customer != null)
            {
                var order = _context.Orders.Include(o => o.OrderedMovies).FirstOrDefault(o => o.OrderId == orderId);

                if (order != null)
                {
                    var orderedMovie = order.OrderedMovies.FirstOrDefault(o => o.MovieId == movieId);
                    orderedMovie.Amount--;
                    await _context.SaveChangesAsync();
                }
            }
            else
            {
                await LoadListOfMovies();

                var searchResultModel = new SearchResultMovieModelView();
                InitializeModel(searchResultModel);
                var selectedmovie = searchResultModel.ResultList.Results.FirstOrDefault(e => e.Id == movieId);
                if (selectedmovie != null)
                {
                    _order.RemoveFromCart(selectedmovie);
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #2
0
        public async Task <IActionResult> Search(string condition, string search)
        {
            await LoadListOfMovies();

            var resultViewModel = new SearchResultMovieModelView();
            var returnViewModel = new SearchResultMovieModelView();

            InitializeModel(resultViewModel);

            if (search == null || string.IsNullOrWhiteSpace(search))
            {
                return(View(resultViewModel));
            }


            if (condition == "Title")
            {
                foreach (var item in resultViewModel.ResultList.Results)
                {
                    if (item.Title.ToLower().Contains(search.ToLower()))
                    {
                        if (!returnViewModel.ResultList.Results.Any(m => m.Title == item.Title))
                        {
                            returnViewModel.ResultList.Results.Add(item);
                        }
                    }
                }
            }
            else if (condition == "Vote")
            {
                if (double.TryParse(search, out double vote))
                {
                    if (vote >= 10 || vote <= 0)
                    {
                        vote = 0;
                    }

                    foreach (var item in resultViewModel.ResultList.Results)
                    {
                        if (item.VoteAverage >= vote)
                        {
                            if (!returnViewModel.ResultList.Results.Contains(item))
                            {
                                returnViewModel.ResultList.Results.Add(item);
                            }
                        }
                    }
                }
            }

            returnViewModel.ViewTitle = "Search Result";

            return(View(returnViewModel));
        }
Пример #3
0
        public async Task <IActionResult> ListAllMovies()
        {
            await LoadListOfMovies();

            var returnViewModel = new SearchResultMovieModelView();

            InitializeModel(returnViewModel);

            returnViewModel.ViewTitle = "All Movies";

            return(View("Search", returnViewModel));
        }
 private void InitializeModel(SearchResultMovieModelView model)
 {
     foreach (var item in popularMovies.Results)
     {
         model.ResultList.Results.Add(item);
     }
     foreach (var item in upComingMovies.Results)
     {
         model.ResultList.Results.Add(item);
     }
     foreach (var item in topRatedMovies.Results)
     {
         model.ResultList.Results.Add(item);
     }
     foreach (var item in nowPlayingMovies.Results)
     {
         model.ResultList.Results.Add(item);
     }
 }
Пример #5
0
        public async Task <IActionResult> ListMoviesByGenre(int genre)
        {
            await LoadListOfMovies();

            var resultViewModel = new SearchResultMovieModelView();
            var returnViewModel = new SearchResultMovieModelView();

            InitializeModel(resultViewModel);

            foreach (var item in resultViewModel.ResultList.Results)
            {
                if (item.GenreIds.Contains(genre))
                {
                    returnViewModel.ResultList.Results.Add(item);
                }
            }

            returnViewModel.ViewTitle = "By Genre";

            return(View("Search", returnViewModel));
        }
Пример #6
0
        public async Task <IActionResult> ListMoviesByCategory(string condition)
        {
            await LoadListOfMovies();

            var viewModel = new SearchResultMovieModelView();

            switch (condition)
            {
            case "Latest":
                foreach (var item in nowPlayingMovies.Results)
                {
                    viewModel.ResultList.Results.Add(item);
                }
                viewModel.ViewTitle = "Latest Movies";
                break;

            case "Popular":
                foreach (var item in topRatedMovies.Results)
                {
                    viewModel.ResultList.Results.Add(item);
                }
                viewModel.ViewTitle = "Popular Movies";
                break;

            case "Soon":
                foreach (var item in upComingMovies.Results)
                {
                    viewModel.ResultList.Results.Add(item);
                }
                viewModel.ViewTitle = "Coming Soon Movies";
                break;

            default:
                break;
            }
            return(View("Search", viewModel));
        }