public ActionResult Index(MoviesFilterViewModel model)
        {
            ViewData["CityId"]       = new SelectList(_context.TblCities.Where(f => f.IsDeleted == false), "CityId", "CityName");
            ViewData["CountryId"]    = new SelectList(_context.TblCountries.Where(f => f.IsDeleted == false), "CountryId", "CountryName");
            ViewData["LanguageId"]   = new SelectList(_context.TblLanguage.Where(f => f.IsDeleted == false), "LanguageId", "LanguageName");
            ViewData["MovieGenreId"] = new SelectList(_context.TblMovieGenre.Where(f => f.IsDeleted == false), "MovieGenreId", "MovieGenreName");
            ViewData["CinemaId"]     = new SelectList(_context.TblCinema.Where(f => f.IsDeleted == false), "CinemaId", "CinemaName");

            var listOfAllMovies = _movieService.GetFilteredMovies(model);

            foreach (var item in listOfAllMovies)
            {
                var newdescription = item.MovieDescription.Length <= 60 ? item.MovieDescription : item.MovieDescription.Substring(0, 60) + "...";
                item.MovieDescription = newdescription;
            }

            return(View(listOfAllMovies));
        }
Пример #2
0
        public IEnumerable <MovieViewModel> GetFilteredMovies(MoviesFilterViewModel model)
        {
            var allMovies = _movieRepository.GetFilteredMovies(model);

            var targetList = allMovies
                             .Select(x => new MovieViewModel()
            {
                MovieId           = x.MovieId,
                CinemaId          = x.CinemaId,
                MovieGenreId      = x.MovieGenreId,
                IsBookable        = x.IsBookable,
                MovieName         = x.MovieName,
                MovieDescription  = x.MovieDescription,
                ReleaseDate       = x.ReleaseDate,
                MovieLength       = x.MovieLength,
                PriceForAdults    = x.PriceForAdults,
                PriceForChildrens = x.PriceForChildrens,
                //ShowTimeIds = x.ShowTimeIds,
                Rating     = x.Rating,
                LanguageId = x.LanguageId,
                //Image = x.Image,
                CreatedByUserId      = x.CreatedByUserId,
                LastModifiedByUserId = x.LastModifiedByUserId,
                CreatedOnDate        = x.CreatedOnDate,
                LastModifiedOnDate   = x.LastModifiedOnDate,
                IsDeleted            = x.IsDeleted,
                Cinema              = x.Cinema,
                CreatedByUser       = x.CreatedByUser,
                ImageNavigation     = x.ImageNavigation,
                Language            = x.Language,
                LastModifiedByUser  = x.LastModifiedByUser,
                MovieGenre          = x.MovieGenre,
                TblCustomerComments = x.TblCustomerComments,
                TblReservations     = x.TblReservations,
                TblShowTime         = x.TblShowTime,
                TblTicket           = x.TblTicket,
            })
                             .ToList();

            return(targetList);
        }
        public List <TblMovie> GetFilteredMovies(MoviesFilterViewModel model)
        {
            var result = _context.TblMovie
                         .Include(t => t.ImageNavigation)
                         .Include(t => t.Language)
                         .Include(t => t.Cinema)
                         .ThenInclude(t => t.Adress)
                         .Include(t => t.MovieGenre)
                         .Include(t => t.TblCustomerComments)
                         .Include(t => t.TblReservations)
                         .Include(t => t.TblShowTime)
                         .Include(t => t.TblTicket)
                         .Where(r => r.IsDeleted == false)
                         .Where(t => t.Cinema.IsDeleted == false)
                         .AsQueryable();

            if (model != null)
            {
                if (model.MovieGenreId.HasValue)
                {
                    result = result.Where(x => x.MovieGenreId == model.MovieGenreId);
                }
                if (model.CountryId.HasValue)
                {
                    result = result.Where(x => x.Cinema.Adress.CountryId == model.CountryId);
                }
                if (model.CityId.HasValue)
                {
                    result = result.Where(x => x.Cinema.Adress.CityId == model.CityId);
                }
                if (model.CinemaId.HasValue)
                {
                    result = result.Where(x => x.CinemaId == model.CinemaId);
                }
                if (model.LanguageId.HasValue)
                {
                    result = result.Where(x => x.LanguageId == model.LanguageId);
                }
            }
            return(result.ToList());
        }
        public async Task <JsonResult> GetFilteredMovies(MoviesFilterViewModel model)
        {
            try
            {
                var movies = await _context.TblMovie
                             .Include(t => t.ImageNavigation)
                             .Include(t => t.Language)
                             .Include(t => t.Cinema)
                             .ThenInclude(t => t.Adress)
                             .Include(t => t.MovieGenre)
                             .Include(t => t.TblCustomerComments)
                             .Include(t => t.TblReservations)
                             .Include(t => t.TblShowTime)
                             .Include(t => t.TblTicket)
                             .Where(r => r.IsDeleted == false)
                             .Where(t => t.Cinema.IsDeleted == false)
                             .ToListAsync();

                foreach (var item in movies)
                {
                    var newdescription = item.MovieDescription.Length <= 60 ? item.MovieDescription : item.MovieDescription.Substring(0, 60) + "...";
                    item.MovieDescription = newdescription;
                }


                var targetList = movies
                                 .Select(x => new MovieViewModel()
                {
                    CinemaId          = x.CinemaId,
                    LanguageId        = x.LanguageId,
                    MovieId           = x.MovieId,
                    MovieGenreId      = x.MovieGenreId ?? 1,
                    IsBookable        = x.IsBookable,
                    MovieName         = x.MovieName ?? "",
                    MovieDescription  = x.MovieDescription ?? "",
                    ReleaseDate       = x.ReleaseDate ?? "",
                    MovieLength       = x.MovieLength ?? "",
                    PriceForAdults    = x.PriceForAdults ?? "",
                    PriceForChildrens = x.PriceForChildrens ?? "",
                    ShowTime          = x.TblShowTime.FirstOrDefault().Time.Split(' ')[0],
                    Rating            = x.Rating ?? "",
                    ImagePath         = x.ImageNavigation.ImagePath ?? "",
                    CinemaName        = x.Cinema.CinemaName,
                    CityId            = x.Cinema.Adress.CityId,
                    CountryId         = x.Cinema.Adress.CountryId
                })
                                 .ToList();

                if (model != null)
                {
                    if (model.MovieGenreId.HasValue)
                    {
                        targetList = targetList.Where(x => x.MovieGenreId == model.MovieGenreId).ToList();
                    }
                    if (model.CountryId.HasValue)
                    {
                        targetList = targetList.Where(x => x.CountryId == model.CountryId).ToList();
                    }
                    if (model.CityId.HasValue)
                    {
                        targetList = targetList.Where(x => x.CityId == model.CityId).ToList();
                    }
                    if (model.CinemaId.HasValue)
                    {
                        targetList = targetList.Where(x => x.CinemaId == model.CinemaId).ToList();
                    }
                    if (model.LanguageId.HasValue)
                    {
                        targetList = targetList.Where(x => x.LanguageId == model.LanguageId).ToList();
                    }
                }


                return(Json(targetList));
            }
            catch (Exception ex)
            {
                return(Json(ex));
            }
        }