Beispiel #1
0
        // GET: api/Movies
        public ListOfMovies GetListOfMovies()
        {
            var TMDBController       = new GetMovieController();
            var currentMovies        = db.Movies;
            var listOfUpcomingMovies = new List <Movie>();
            var listOfCurrentMovies  = new List <Movie>();

            foreach (var movie in currentMovies)
            {
                if (DateTime.Today >= movie.StartDate && DateTime.Today <= movie.EndDate)
                {
                    listOfCurrentMovies.Add(TMDBController.GetMovie(movie.TmdbId, movie.StartDate)); //
                }
                else if (DateTime.Today < movie.StartDate)
                {
                    listOfUpcomingMovies.Add(TMDBController.GetMovie(movie.TmdbId, movie.StartDate)); //
                }
            }
            foreach (var movie in listOfCurrentMovies)
            {
                movie.DbMovieId = currentMovies.Where(x => x.TmdbId == movie.Id).Select(t => t.MovieId).FirstOrDefault();
            }
            foreach (var movie in listOfUpcomingMovies)
            {
                movie.DbMovieId = currentMovies.Where(x => x.TmdbId == movie.Id).Select(t => t.MovieId).FirstOrDefault();
            }

            return(new ListOfMovies
            {
                CurrentMovies = listOfCurrentMovies,
                UpcomingMovies = listOfUpcomingMovies
            });
        }
        // GET: api/Screenings
        public List <ScreeningsTable> GetScreenings()
        {
            var screenings          = db.Screenings.Where(x => x.ViewingDate >= DateTime.UtcNow);
            var movieList           = new List <ScreeningsTable>();
            var _getMovieController = new GetMovieController();

            foreach (var screening in screenings)
            {
                var movieInfo              = db.Movies.Where(x => x.MovieId == screening.MovieId).FirstOrDefault();
                var movieName              = movieInfo.MovieName;
                var movie                  = _getMovieController.GetMovie(movieInfo.TmdbId);
                var auditoriumName         = db.Auditoriums.Where(x => x.AuditoriumId == screening.AuditoriumId).FirstOrDefault().AuditoriumName;
                var bookings               = db.Bookings.Where(x => x.ScreeningId == screening.ScreeningId).ToList().Count();
                var seats                  = db.Seats.Where(x => x.AuditoriumId == screening.AuditoriumId).ToList().Count();
                var numberOfSeatsRemaining = seats - bookings;
                movieList.Add(new ScreeningsTable
                {
                    Auditorium             = auditoriumName,
                    MovieName              = movieName,
                    Price                  = screening.Price,
                    ScreeningId            = screening.ScreeningId,
                    StartTime              = screening.StartTime.ToString().Substring(0, 5),
                    ViewingDate            = screening.ViewingDate,
                    NumberOfSeatsRemaining = numberOfSeatsRemaining,
                    PosterPath             = movie.PosterPath,
                    Overview               = movie.Overview
                });
            }
            var sortedListToReturn = movieList.OrderBy(x => x.ViewingDate).ToList();

            return(sortedListToReturn);
        }
        // GET: api/Booking
        public List <UserTicket> Get()
        {
            var _getMovieController = new GetMovieController();

            var user = db.Users.Find(Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name));
            var dbListOfBookingsByEmail = db.Bookings.Where(x => x.Email == user.Email).ToList();
            var screenings = dbListOfBookingsByEmail.Select(x => x.ScreeningId).Distinct().ToList();

            var listOfScreenings = new List <UserTicket>();

            foreach (var screening in screenings)
            {
                var movie       = db.Screenings.Where(x => x.ScreeningId == screening).FirstOrDefault();
                var tmdbMovieId = db.Movies.Where(x => x.MovieId == movie.MovieId).FirstOrDefault().TmdbId;
                var tmdbMovie   = _getMovieController.GetMovie(tmdbMovieId);
                listOfScreenings.Add(new UserTicket
                {
                    ScreeningId     = screening,
                    PosterPath      = tmdbMovie.PosterPath,
                    MovieName       = tmdbMovie.MovieName,
                    ViewingDate     = movie.ViewingDate,
                    StartTime       = movie.StartTime,
                    AuditoriumId    = movie.AuditoriumId,
                    NumberOfTickets = dbListOfBookingsByEmail.Where(x => x.ScreeningId == screening).Count()
                });
            }
            return(listOfScreenings);

            //var listretur = new List<List<UserTicket>>();
            //foreach (var screening in screenings)
            //{
            //    var movie = db.Screenings.Where(x => x.ScreeningId == screening).FirstOrDefault();
            //    var tmdbMovieId = db.Movies.Where(x => x.MovieId == movie.MovieId).FirstOrDefault().TmdbId;
            //    var tmdbMovie = _getMovieController.GetMovie(tmdbMovieId);

            //    var userTickets = new List<UserTicket>();
            //    foreach (var booking in dbListOfBookingsByEmail)
            //    {
            //        if (booking.ScreeningId == screening)
            //        {
            //            userTickets.Add(new UserTicket
            //            {
            //                PosterPath = tmdbMovie.PosterPath,
            //                MovieName = tmdbMovie.MovieName,
            //                BookingId = booking.BookingId,
            //                Paid = booking.Paid,
            //                ScreeningId = booking.ScreeningId,
            //                SeatId = booking.SeatId,
            //                ViewingDate = movie.ViewingDate,
            //                StartTime = movie.StartTime,
            //                AuditoriumId = movie.AuditoriumId
            //            });
            //        }
            //    }
            //    listretur.Add(userTickets);
            //}
            //return listretur;
        }