// 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; }