コード例 #1
0
        public ActionResult TheaterDetails(int TheaterList, string TimeList, string SeatList, int Quantity)
        {
            MovieBooking     moviebook = new MovieBooking();
            MovieInformation movieinfo = new MovieInformation();
            var movie        = (string)Session["MovieName"];
            var date         = (string)Session["DateList"];
            var email        = (string)Session["Email"];
            var theaterName  = movieinfo.GetTheaterName(TheaterList);
            var movieid      = movieinfo.GetMovieID(movie);
            var scheduleid   = movieinfo.GetScheduleID(date);
            var userid       = movieinfo.GetUserID(email);
            var amount       = movieinfo.GetPrice(TheaterList, SeatList, movieid);
            var amountToPaid = amount * Quantity;

            movieinfo.InsertIntoBooking(movieid, scheduleid, TheaterList, TimeList, SeatList, Quantity, amountToPaid, userid);
            moviebook.MovieName = movie;
            moviebook.Name      = theaterName;
            moviebook.Date      = Convert.ToDateTime(date);
            moviebook.ShowTime  = Convert.ToDateTime(TimeList);
            moviebook.Quantity  = Quantity;
            moviebook.SeatName  = SeatList;
            moviebook.Price     = amountToPaid;

            return(View("TicketSummary", moviebook));
        }
コード例 #2
0
        public IHttpActionResult PutMovieBooking(int id, MovieBooking movieBooking)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != movieBooking.MovieBookingId)
            {
                return(BadRequest());
            }

            db.Entry(movieBooking).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MovieBookingExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #3
0
        public IHttpActionResult GetMovieBooking(int id)
        {
            MovieBooking movieBooking = db.MovieBookings.Find(id);

            if (movieBooking == null)
            {
                return(NotFound());
            }

            return(Ok(movieBooking));
        }
コード例 #4
0
        public JsonResult DateDropDown(string MovieNameList, MovieBooking moviebook)
        {
            MovieInformation movieinfo = new MovieInformation();
            var movieID  = movieinfo.GetMovieID(MovieNameList);
            var DateList = movieinfo.GetDateDropDown(movieID).ToList();

            foreach (var item in DateList)
            {
                moviebook.DateList.Add(item);
            }
            return(Json(moviebook));
        }
コード例 #5
0
        public IHttpActionResult PostMovieBooking(MovieBooking movieBooking)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.MovieBookings.Add(movieBooking);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = movieBooking.MovieBookingId }, movieBooking));
        }
コード例 #6
0
        public JsonResult CityDropDown(int StateNameList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var CityName = movieinfo.GetCityDropDown(StateNameList).ToList();

            foreach (var item in CityName)
            {
                moviebook.CityNameList.Add(item);
            }
            return(Json(moviebook));
        }
コード例 #7
0
        public ActionResult MovieBooking()
        {
            MovieBooking     moviebook = new MovieBooking();
            TheaterDetails   cinema    = new TheaterDetails();
            MovieInformation movieinfo = new MovieInformation();
            var StateList = movieinfo.StateNameList().ToList();

            foreach (var item in StateList)
            {
                moviebook.StateNameList.Add(item);
            }
            return(View(moviebook));
        }
コード例 #8
0
        public JsonResult MovieDropDown(string CityNameList, MovieBooking moviebook)
        {
            MovieInformation movieinfo = new MovieInformation();

            moviebook = new MovieBooking();
            var CityList  = movieinfo.GetCityID(CityNameList);
            var MovieName = movieinfo.GetMovieDropdown(CityList).ToList();

            foreach (var item in MovieName)
            {
                moviebook.MovieNameList.Add(item);
            }
            return(Json(moviebook));
        }
コード例 #9
0
        public void Form1Test()
        {
            MovieBooking obj    = new MovieBooking(1);
            int          copies = obj.VideoCopies(1);

            if (copies > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.IsTrue(false);
            }
        }
コード例 #10
0
        public IHttpActionResult DeleteMovieBooking(int id)
        {
            MovieBooking movieBooking = db.MovieBookings.Find(id);

            if (movieBooking == null)
            {
                return(NotFound());
            }

            db.MovieBookings.Remove(movieBooking);
            db.SaveChanges();

            return(Ok(movieBooking));
        }
コード例 #11
0
        public JsonResult TimeDropDown(int TheaterList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var movie = (string)Session["MovieName"];
            var date  = (string)Session["DateList"];
            var Time  = movieinfo.GetTimeDropDown(TheaterList, movie, date).ToList();

            foreach (var item in Time)
            {
                moviebook.TimeList.Add(item);
            }
            return(Json(moviebook));
        }
コード例 #12
0
        public ActionResult MovieBooking(int StateNameList, string CityNameList, string MovieNameList, string DateList)
        {
            MovieBooking     moviebook = new MovieBooking();
            MovieInformation movieinfo = new MovieInformation();
            var theater = movieinfo.FindTheaterName(StateNameList, CityNameList, MovieNameList, DateList);

            Session["MovieName"] = MovieNameList;
            Session["DateList"]  = DateList;
            foreach (var item in theater)
            {
                moviebook.TheaterList.Add(item);
            }
            return(View("TheaterDetails", moviebook));
        }
コード例 #13
0
        public async Task <ActionResult> CreateMovieBooking([FromBody] MovieBookingDto movieDto)
        {
            var movieID = movieDto.MovieID;
            var userID  = User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (string.IsNullOrEmpty(movieID))
            {
                return(BadRequest());
            }
            var userMovieBooking = await _context.MovieBookings.Include(mb => mb.Movie).FirstOrDefaultAsync(mb => mb.UserID == userID && mb.MovieID == movieID);

            if (userMovieBooking != null)
            {
                return(Conflict());
            }
            var movie = await _context.Movies.FindAsync(movieID);

            var booking = new MovieBooking()
            {
                UserID = userID,
                Movie  = movie
            };

            _context.MovieBookings.Add(booking);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (MovieBookingExists(booking.MovieBookingID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            var dto = new MovieBookingDto()
            {
                DatimeTimeUTC  = booking.DatimeTimeUTC,
                MovieBookingID = booking.MovieBookingID,
                MovieID        = booking.MovieID
            };

            return(CreatedAtAction("CreateMovieBooking", dto));
        }
コード例 #14
0
        public async Task <ActionResult> PostAsync([FromBody] MovieBooking booking)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _logger.LogInformation($"New movie booking received: {booking}");

            // Publish a new booking to the stream
            var kafkaProducerService = new KafkaProducerService(_logger, _config, KafkaTopics.TOPIC_BOOKING_REQUEST);
            await kafkaProducerService.Write(booking);

            return(Ok("Your booking is being processed"));
        }
コード例 #15
0
        public JsonResult SeatDropDown(string TimeList)
        {
            MovieInformation movieinfo = new MovieInformation();
            MovieBooking     moviebook = new MovieBooking();
            var movie    = (string)Session["MovieName"];
            var date     = (string)Session["DateList"];
            var timeid   = movieinfo.GetTimeID(TimeList);
            var SeatList = movieinfo.GetSeatList(timeid, movie, date).ToList();

            foreach (var item in SeatList)
            {
                moviebook.SeatList.Add(item);
            }
            return(Json(moviebook));
        }
コード例 #16
0
        public IHttpActionResult PostvMovieBook(vMovieBook vMovieBook)
        {
            Movy movy = db.Movies.Single(t => t.MovieName == vMovieBook.MovieName);

            User user = db.Users.Single(t => t.UserName == vMovieBook.UserName);

            Theater theater = db.Theaters.SingleOrDefault(t => t.ShowTime == vMovieBook.ShowTime && t.Price == vMovieBook.Price);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var movieBooking = new MovieBooking()
            {
                MovieId   = movy.MovieId,
                UserId    = user.UserId,
                TheaterId = theater.TheaterId
            };

            db.MovieBookings.Add(movieBooking);
            db.SaveChanges();
            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}

            //db.vMovieBooks.Add(vMovieBook);

            //try
            //{
            //    db.SaveChanges();
            //}
            //catch (DbUpdateException)
            //{
            //    if (vMovieBookExists(vMovieBook.MovieName))
            //    {
            //        return Conflict();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}

            return(CreatedAtRoute("DefaultApi", new { id = vMovieBook.MovieName }, vMovieBook));
        }
コード例 #17
0
        private List <MovieBooking> GetMovies()
        {
            List <MovieBooking> movies = new List <MovieBooking>();

            // Get the first row of the GridView (if it exists)
            GridViewRow row = null;

            var enumerator = BookingsGridView.Rows.GetEnumerator();

            if (enumerator.MoveNext())
            {
                row = enumerator.Current as GridViewRow;
            }
            else
            {
                throw new Exception("Please prepare which theatre you want before clicking Schedule Movies");
            }

            // Get the movies
            DateTime     baseDate = DateTime.Parse(ShowDate.Text); // TODO: do as a tryparse
            MovieBooking show     = null;

            //slot1
            if (TryBuildMovieBooking(row, baseDate, "MovieSlot_1", "StartTimeSlot_1", out show))
            {
                movies.Add(show);
            }

            //slot2
            if (TryBuildMovieBooking(row, baseDate, "MovieSlot_2", "StartTimeSlot_2", out show))
            {
                movies.Add(show);
            }

            //slot3
            if (TryBuildMovieBooking(row, baseDate, "MovieSlot_3", "StartTimeSlot_3", out show))
            {
                movies.Add(show);
            }

            //slot4
            if (TryBuildMovieBooking(row, baseDate, "MovieSlot_4", "StartTimeSlot_4", out show))
            {
                movies.Add(show);
            }
            return(movies);
        }
コード例 #18
0
        public async Task <MovieResult <MovieBooking> > GetMovieDetail(MovieBooking movie)
        {
            this.SetMovieDb(movie.MovieDB);
            var ResponseSourceMovieData = await this.GetMovieById(movie.ID).ConfigureAwait(false);

            if (ResponseSourceMovieData.ErrorCode.HasValue)
            {
                return(GetErrorResponseMovieDetail(ResponseSourceMovieData));
            }

            var SourceMovieData = ResponseSourceMovieData.Data;

            SourceMovieData.MovieDB = movie.MovieDB;

            MovieBooking RivalMovieData = null;

            if (movie.RivalID != null)
            {
                this.SetMovieDb(movie.RivalMovieDB);
                var ResponseRivalMovieData = await this.GetMovieById(movie.RivalID).ConfigureAwait(false);

                if (ResponseRivalMovieData.ErrorCode.HasValue)
                {
                    return(GetErrorResponseMovieDetail(ResponseRivalMovieData));
                }

                RivalMovieData = ResponseRivalMovieData.Data;
            }

            if (RivalMovieData != null)
            {
                SourceMovieData.RivalID      = RivalMovieData.ID;
                SourceMovieData.RivalMovieDB = movie.RivalMovieDB;
                SourceMovieData.RivalPrice   = RivalMovieData.Price;

                if (SourceMovieData.Price >= RivalMovieData.Price)
                {
                    SourceMovieData.RivalPriceCheaper = true;
                }
            }
            return(new MovieResult <MovieBooking> {
                Data = SourceMovieData
            } as MovieResult <MovieBooking>);
        }
コード例 #19
0
        public async Task <IActionResult> AddToCart([Bind("CineplexId, Day, Hour, Period, AdultSeats, ConcessionSeats")] MovieBooking item)
        {
            using (var client = new HttpClient())
            {
                string cineplexMovieJson;
                try
                {
                    cineplexMovieJson = await client.GetStringAsync(WEB_API_URL +
                                                                    $"{item.CineplexId}/{item.Day}/{item.Hour}/{item.Period}");
                }
                catch
                {
                    return(NotFound());
                }

                var cineplexMovie = JsonConvert.DeserializeObject <CineplexMovie>(cineplexMovieJson);

                // Ensures the specified Session Exists
                if (cineplexMovie == null)
                {
                    return(NotFound());
                }
                IList <MovieBooking> cart = HttpContext.Session.GetCart();
                int cartCount             = 0;
                foreach (var cartItem in cart)
                {
                    cartCount += (cartItem.ConcessionSeats + cartItem.AdultSeats);
                }
                if (cartCount + item.AdultSeats + item.ConcessionSeats > MAX_BOOKINGS)
                {
                    return(RedirectToAction("Cart"));
                }
                // If there aren't enough seats left, send the user back to th booking page.
                if (cineplexMovie.AvailableSeats < item.AdultSeats + item.ConcessionSeats)
                {
                    return(RedirectToAction("Book", new { item.CineplexId, item.Day, item.Hour, item.Period }));
                }
                cart.Add(item);
                HttpContext.Session.SetCart(cart);
                return(RedirectToAction("Index"));
            }
        }
コード例 #20
0
        public async Task IMovieBS_Should_Give_Cheaper_MovieDB_When_GetMovieDetail_is_called_with_Selected_Movie()
        {
            MovieBooking selectedMovie = new MovieBooking()
            {
                Title             = "Star Wars: Episode IV - A New Hope",
                Year              = "1977",
                Rated             = null,
                Released          = null,
                Runtime           = null,
                Genre             = null,
                Director          = null,
                Writer            = null,
                Actors            = null,
                Plot              = null,
                Language          = null,
                Country           = null,
                Poster            = "http://ia.media-imdb.com/images/M/MV5BOTIyMDY2NGQtOGJjNi00OTk4LWFhMDgtYmE3M2NiYzM0YTVmXkEyXkFqcGdeQXVyNTU1NTcwOTk@._V1_SX300.jpg",
                Metascore         = null,
                Rating            = null,
                Votes             = null,
                ID                = "cw0076759",
                Type              = "movie",
                Price             = 0,
                MovieDB           = "cinemaworld",
                RivalMovieDB      = "filmworld",
                RivalID           = "fw0076759",
                RivalPrice        = 0,
                RivalPriceCheaper = false
            };

            var dataMovieDetail = await _service.GetMovieDetail(selectedMovie).ConfigureAwait(false);

            if (dataMovieDetail.ErrorCode == null)
            {
                Assert.AreEqual(dataMovieDetail.Data.RivalPrice, 29.5);
                Assert.AreEqual(dataMovieDetail.Data.Price, 123.5);
                Assert.AreEqual(dataMovieDetail.Data.RivalPriceCheaper, true);
            }
        }
コード例 #21
0
        public async Task IMovieBS_Should_Give_Movie_Detail_When_GetMovieById_is_called_filmworld()
        {
            _service.SetMovieDb(RivalMovieDb);
            var MovieFilmWorld = await _service.GetMovieById("fw0076759");

            if (MovieFilmWorld.ErrorCode == null)
            {
                MovieBooking actual = MovieFilmWorld.Data;

                MovieBooking expected = new MovieBooking()
                {
                    Title             = "Star Wars: Episode IV - A New Hope",
                    Year              = "1977",
                    Rated             = "PG",
                    Released          = "25 May 1977",
                    Runtime           = "121 min",
                    Genre             = "Action, Adventure, Fantasy",
                    Director          = "George Lucas",
                    Writer            = "George Lucas",
                    Actors            = "Mark Hamill, Harrison Ford, Carrie Fisher, Peter Cushing",
                    Plot              = "Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a wookiee and two droids to save the galaxy from the Empire's world-destroying battle-station, while also attempting to rescue Princess Leia from the evil Darth Vader.",
                    Language          = "English",
                    Country           = "USA",
                    Poster            = "http://ia.media-imdb.com/images/M/MV5BOTIyMDY2NGQtOGJjNi00OTk4LWFhMDgtYmE3M2NiYzM0YTVmXkEyXkFqcGdeQXVyNTU1NTfwOTk@._V1_SX300.jpg",
                    Metascore         = "92",
                    Rating            = "8.7",
                    Votes             = "915,459",
                    ID                = "fw0076759",
                    Type              = "movie",
                    Price             = 29.5,
                    MovieDB           = null,
                    RivalMovieDB      = null,
                    RivalID           = null,
                    RivalPrice        = 0,
                    RivalPriceCheaper = false
                };

                Assert.AreEqual(actual.Title, expected.Title);
                Assert.AreEqual(actual.Actors, expected.Actors);
                Assert.AreEqual(actual.Year, expected.Year);

                Assert.AreEqual(actual.Rated, expected.Rated);
                Assert.AreEqual(actual.Released, expected.Released);
                Assert.AreEqual(actual.Runtime, expected.Runtime);
                Assert.AreEqual(actual.Genre, expected.Genre);

                Assert.AreEqual(actual.Director, expected.Director);
                Assert.AreEqual(actual.Writer, expected.Writer);
                Assert.AreEqual(actual.Plot, expected.Plot);
                Assert.AreEqual(actual.Language, expected.Language);

                Assert.AreEqual(actual.Country, expected.Country);
                Assert.AreEqual(actual.Poster, expected.Poster);
                Assert.AreEqual(actual.Metascore, expected.Metascore);

                Assert.AreEqual(actual.Rating, expected.Rating);
                Assert.AreEqual(actual.Votes, expected.Votes);
                Assert.AreEqual(actual.ID, expected.ID);
                Assert.AreEqual(actual.Type, expected.Type);

                Assert.AreEqual(actual.Price, expected.Price);
                Assert.AreEqual(actual.MovieDB, expected.MovieDB);
                Assert.AreEqual(actual.RivalMovieDB, expected.RivalMovieDB);
                Assert.AreEqual(actual.RivalID, expected.RivalID);

                Assert.AreEqual(actual.RivalPrice, expected.RivalPrice);
                Assert.AreEqual(actual.RivalPriceCheaper, expected.RivalPriceCheaper);
            }
        }
コード例 #22
0
        public ActionResult Login(Models.Login model_login)
        {
            MovieInformation movieinfo = new MovieInformation();

            Models.UserDetails user  = new Models.UserDetails();
            MovieRegistration  movie = new MovieRegistration();
            string             val   = movieinfo.checkUser(model_login);

            if (ModelState.IsValid)
            {
                if (val != "")
                {
                    if (val == "Provider")
                    {
                        Session["Email"] = model_login.Email;


                        var state = movieinfo.StateNameList().ToList();
                        var city  = movieinfo.CityNameList().ToList();
                        var area  = movieinfo.AreaNameList().ToList();

                        foreach (var item in state)
                        {
                            movie.StateNameList.Add(item);
                        }
                        foreach (var item in city)
                        {
                            movie.CityNameList.Add(item);
                        }
                        foreach (var item in area)
                        {
                            movie.AreaNameList.Add(item);
                        }
                        return(View("../Registration/TheaterExistence", movie));
                    }
                    else if (val == "User")
                    {
                        Session["Email"] = model_login.Email;
                        MovieBooking   moviebook = new MovieBooking();
                        TheaterDetails cinema    = new TheaterDetails();
                        var            StateList = movieinfo.StateNameList().ToList();
                        foreach (var item in StateList)
                        {
                            moviebook.StateNameList.Add(item);
                        }

                        return(View("MovieBooking", moviebook));
                    }
                    else
                    {
                        Session["Email"] = model_login.Email;
                        return(View("../Registration/StateRegistration", movie));
                    }
                }
                else
                {
                    ViewBag.Message = "Invalid Email and Password";
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
コード例 #23
0
        private static bool TryBuildMovieBooking(GridViewRow row, DateTime baseDate, string movieControlId, string timeControlId, out MovieBooking show)
        {
            TimeSpan offset;
            var      controls = FindRowControls(row, movieControlId, timeControlId);
            string   movie = controls.MovieControl.SelectedValue, time = controls.TimeControl.Text;
            bool     validTime = TimeSpan.TryParse(time, out offset);

            if (validTime)
            {
                show = BuildMovieBooking(baseDate.Add(offset), movie);
            }
            else
            {
                show = null;
            }
            return(validTime);
        }