Beispiel #1
0
        public static void InstantiateSeats(Showtime st)
        {
            AppDbContext  db        = new AppDbContext();
            List <String> SeatNames = new List <String>();
            int           i         = 1;

            while (i < 9)
            {
                SeatNames.Add("A" + Convert.ToString(i));
                SeatNames.Add("B" + Convert.ToString(i));
                SeatNames.Add("C" + Convert.ToString(i));
                SeatNames.Add("D" + Convert.ToString(i));
                i += 1;
            }

            foreach (String sn in SeatNames)
            {
                Ticket ticket = new Ticket();
                ticket.Seat  = sn;
                ticket.Taken = false;

                ticket.Showtime = st; //st.Tickets.Add(tick);
                db.Tickets.Add(ticket);

                db.SaveChanges();
            }
        }
Beispiel #2
0
        private static Boolean ShowtimePassesFilter(Showtime showtime, String titleFilter, String theaterFilter, SamiDateTime timeFilter)
        {
            // See if the showtime is in a certain time
            if (!timeFilter.TimeIsInRange(showtime.Time))
            {
                // The time is not in the range
                return(false);
            }

            if (!String.IsNullOrEmpty(titleFilter))
            {
                if (!showtime.MovieTitle.Equals(titleFilter))
                {
                    return(false);
                }
            }

            if (!String.IsNullOrEmpty(theaterFilter))
            {
                if (!showtime.Theater.Equals(theaterFilter))
                {
                    return(false);
                }
            }

            // We've hit this point, so we passed the filter
            return(true);
        }
Beispiel #3
0
        public ShowtimeEditorWindowViewModel(ShowtimeEditorWindow view, Showtime showtime,
                                             MovieRepository movieRepository, ShowtimeRepository showtimeRepository)
        {
            if (showtime == null)
            {
                CreateMode = true;
                showtime   = new Showtime();
            }

            this.view               = view;
            this.movieRepository    = movieRepository;
            this.showtimeRepository = showtimeRepository;
            Showtime = showtime;

            Movies      = movieRepository.GetMovies().ToList();
            Auditoriums = showtimeRepository.GetAuditoriums().ToList();

            if (CreateMode)
            {
                return;
            }

            var movie = Movies.FirstOrDefault(_ => _.Id == showtime.Movie.Id);

            view.SelectedMovieIndex = Movies.IndexOf(movie);

            var auditorium = Auditoriums.FirstOrDefault(_ => _.Id == showtime.Auditorium.Id);

            view.SelectedAuditoriumIndex = Auditoriums.IndexOf(auditorium);

            view.Time = showtime.Time;
        }
        // GET: Showtimes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Showtime showtime = db.Showtimes.Include(i => i.Film).First(f => f.ID == id);

            if (showtime == null)
            {
                return(HttpNotFound());
            }

            List <string> users = db.Seats
                                  .Include(i => i.ApplicationUser)
                                  .Where(w => w.ShowtimeID == id)
                                  .OrderBy(o => o.ApplicationUser.UserName)
                                  .Select(s => s.ApplicationUser.UserName)
                                  .ToList();

            var vbList = new List <string>();

            foreach (var user in users)
            {
                if (user != null)
                {
                    vbList.Add(user);
                }
            }

            ViewBag.UserList = vbList;

            return(View(showtime));
        }
Beispiel #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            Showtime      showtime = db.Showtimes.Find(id);
            Schedule      schedule = db.Schedules.Find(showtime.Schedule.ScheduleID);
            List <Ticket> tickets  = new List <Ticket>();

            foreach (Ticket tick in showtime.Tickets)
            {
                tickets.Add(tick);
            }

            foreach (Ticket ticket in tickets)
            {
                Ticket ticktotake = db.Tickets.Find(ticket.TicketID);
                if (ticket.Taken == true)
                {
                    //TODO: Send email message notifying showtime has been cancelled
                    AppUser afflicteduser = db.Users.Find(ticktotake.Order.AppUser.Id);
                    OrdersController.EmailMessaging.SendEmail(afflicteduser.Email, "Showtime Cancelled", "We're sorry, one of the showtimes which you had a ticket to has been cancelled. Your order has been refunded");
                    if (ticktotake.Order.PaymentMethod == PaymentMethod.PopcornPoints)
                    {
                        ticktotake.Order.AppUser.PopcornPoints += 100;
                    }
                }

                db.Tickets.Remove(ticktotake);
            }

            db.Entry(schedule).State = EntityState.Modified;
            db.Showtimes.Remove(showtime);
            db.SaveChanges();
            return(RedirectToAction("RemoveFromSchedule", "Schedules", new { ScheduleID = schedule.ScheduleID }));
        }
Beispiel #6
0
        public OrderEntity(Order Order, params object[] args)
        {
            this.Id    = Order.Id;
            this.Price = Order.Price;

            foreach (var arg in args)
            {
                // Order tham chiếu tới Showtime
                if (arg is Showtime)
                {
                    Showtime showTime = arg as Showtime;
                    this.ShowtimeEntity = new ShowtimeEntity(showTime, showTime.Film, showTime.Room);
                }
                // Order được OrderSeat tham chiếu tới
                if (arg is ICollection <Seat> )
                {
                    this.SeatEntities = new List <SeatEntity>();
                    ICollection <Seat> Seats = arg as ICollection <Seat>;
                    foreach (var Seat in Seats)
                    {
                        this.SeatEntities.Add(new SeatEntity(Seat, Seat.Room));
                    }
                }
            }
        }
 public EditShowtimeForm(Showtime showtime, List <Movie> movies)
 {
     _movies   = movies;
     _showtime = showtime;
     InitializeComponent();
     InitializeFormFileds();
 }
Beispiel #8
0
        public ShowtimeEntity(Showtime Showtime, params object[] args)
        {
            this.Id     = Showtime.Id;
            this.FilmId = Showtime.FilmId;
            this.RoomId = Showtime.RoomId;
            this.Time   = Showtime.Time;

            foreach (var arg in args)
            {
                // Showtime tham chiếu tới Film
                if (arg is Film)
                {
                    this.FilmEntity = new FilmEntity(arg as Film);
                }
                // Showtime tham chiếu tới Room
                if (arg is Room)
                {
                    this.RoomEntity = new RoomEntity(arg as Room);
                }
                // Showtime được Order tham chiếu tới
                if (arg is ICollection <Order> )
                {
                    this.OrderEntities = new List <OrderEntity>();
                    ICollection <Order> Orders = arg as ICollection <Order>;
                    foreach (var Order in Orders)
                    {
                        this.OrderEntities.Add(new OrderEntity(Order));
                    }
                }
            }
        }
Beispiel #9
0
        public void ReserveThreeSeats()
        {
            this.driver.Navigate().GoToUrl(this.uri);

            Reserve reserve = new Reserve("El Violinista del Diablo", "2");

            reserve.Seats.Add(new Seat(4, 12));
            reserve.Seats.Add(new Seat(4, 13));
            reserve.Seats.Add(new Seat(4, 14));

            EliteMovieEntryPoint eliteMovie = new EliteMovieEntryPoint();

            eliteMovie.Reserve(reserve);

            List <Seat> bookedSeats = new List <Seat>();

            using (WebClient request = new WebClient())
            {
                string   response = request.DownloadString("http://localhost:8080/rest/showtime/2");
                Showtime showTime = JsonConvert.DeserializeObject <Showtime>(response);

                showTime.Seats.ForEach(block => bookedSeats.AddRange(block.Where(seat => seat.Booked)));
            }

            CollectionAssert.AreEquivalent(reserve.Seats, bookedSeats);
        }
        public async Task <IHttpActionResult> PutShowtime(int id, Showtime showtime)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != showtime.Id)
            {
                return(BadRequest());
            }

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

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ShowtimeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #11
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,MovieId,ShowDateTime")] Showtime showtime)
        {
            if (id != showtime.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(showtime);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ShowtimeExists(showtime.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieId"] = new SelectList(_context.Movie, "Id", "Title", showtime.MovieId);
            return(View(showtime));
        }
Beispiel #12
0
        public ActionResult Create([Bind(Include = "ShowtimeID,ShowtimeTime,TheaterNumber")] Showtime showtime, int SelectedMovies)
        {
            //add Movies

            //find the moveie
            Movie mov = db.Movies.Find(SelectedMovies);

            showtime.Movie = mov;



            //add vendors
            //foreach (int i in SelectedMovies)
            //{
            //    //find the vendor
            //    Movie mvie = db.Movies.Find(i);
            //    showtime.Movies.Add(mvie);
            //}

            if (ModelState.IsValid)
            {
                db.Showtimes.Add(showtime);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            db.SaveChanges();
            //Populate the view bag with the department list
            //ViewBag.AllMovies = GetAllMovies(showtime);
            return(View(showtime));
        }
Beispiel #13
0
 public AddShowtimeForm(Showtime newShowtime, List <Movie> movies)
 {
     _movies      = movies;
     _newShowtime = newShowtime;
     InitializeComponent();
     InitializeFormFields();
 }
        public Showtime CreateShowtime(ShowtimeRequest showtimeRequest)
        {
            Showtime showtime = new Showtime();

            if (showtime.Status != null)
            {
                showtime.Status = showtimeRequest.Status;
            }
            else
            {
                showtime.Status = Constants.SHOWTIME_STATUS_ACTIVE;
            }
            showtime.StartAt = DateTime.Parse(showtimeRequest.StartAt);
            showtime.Movie   = dbContext.Movies.Where(m => m.Id == showtimeRequest.MovieId).FirstOrDefault();
            if (showtime.Movie != null)
            {
                showtime.EndAt = showtime.StartAt.AddMinutes(showtime.Movie.Runtime);
            }
            showtime.BasePrice  = showtimeRequest.BasePrice;
            showtime.Room       = dbContext.Rooms.Where(r => r.Id == showtimeRequest.RoomId).FirstOrDefault();
            showtime.ScreenType = dbContext.ScreenTypes.Where(st => st.Id == showtimeRequest.ScreenTypeId).FirstOrDefault();
            dbContext.Add(showtime);
            bool isSuccess = Save();

            if (!isSuccess)
            {
                return(null);
            }
            return(showtime);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Showtime showtime = db.Showtimes.Find(id);

            db.Showtimes.Remove(showtime);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #16
0
        public void Delete(Showtime showtime)
        {
            var executor = new CommandExecutor("dbo.DeleteShowtime", connectionString);

            executor.SetParam("@Id", showtime.Id, SqlDbType.Int);

            executor.ExecuteCommand(true).ThrowIfException();
        }
        public MovieListPage()
        {
            /**
             * Implementing the search functionality
             **/

            Title   = "Movies";
            Padding = new Thickness(0, Device.OnPlatform(20, 0, 0), 0, 0);
            SearchBar movieSearchBar = new SearchBar {
                Placeholder = "Search Movies",
            };


            ListView listView = new ListView();

            listView.ItemsSource    = movies;
            listView.HasUnevenRows  = true;
            listView.SeparatorColor = Color.FromHex("#ddd");

            movieSearchBar.TextChanged += (sender, e) => {
                if (string.IsNullOrWhiteSpace(movieSearchBar.Text))
                {
                    listView.ItemsSource = movies;
                }
                else
                {
                    listView.ItemsSource = movies.Where(p => p.Movie.Name.ToLower().Contains(movieSearchBar.Text.ToLower()));
                }
            };

            movieSearchBar.SearchButtonPressed += (sender, e) => {
                if (!string.IsNullOrEmpty(movieSearchBar.Text))
                {
                    listView.ItemsSource = movies.Where(p => p.Movie.Name.ToLower().Contains(movieSearchBar.Text.ToLower()));
                }
            };

            listView.ItemTemplate = new DataTemplate(typeof(MovieTemplate));


            var layout = new StackLayout {
            };

            layout.Children.Add(movieSearchBar);
            layout.Children.Add(listView);

            Content = layout;

            listView.ItemSelected += async(sender, e) =>
            {
                if (e.SelectedItem != null)
                {
                    Showtime item = (Showtime)e.SelectedItem;
                    listView.SelectedItem = null;
                    await Navigation.PushAsync(new ShowTimeDetailPage(item));
                }
            };
        }
Beispiel #18
0
        public async Task <IActionResult> PostReservationAsync(string email, int adultTickets, int childTickets, int showtimeID)
        {
            if (email == "")
            {
                return(BadRequest(new { general = "Please enter your email" }));
            }
            else if (adultTickets + childTickets == 0)
            {
                return(BadRequest(new { general = "You must reserve at least one ticket" }));
            }

            int reservationsMade = _context.Reservations
                                   .Where(r => r.ShowtimeID == showtimeID)
                                   .Count();
            int roomCapacity = _context.Showtimes
                               .Where(s => s.ShowtimeID == showtimeID)
                               .Select(s => s.Room.Capacity)
                               .Single();

            if (reservationsMade + adultTickets + childTickets > roomCapacity)
            {
                return(BadRequest(new { general = "There aren't enough free seats to complete your reservation. " +
                                                  "Please choose a different showtime." }));
            }

            for (int i = 0; i < adultTickets; i++)
            {
                Reservation reservation = new Reservation
                {
                    ShowtimeID = showtimeID,
                    Type       = "Adult",
                    Email      = email
                };
                _context.Reservations.Add(reservation);
            }
            for (int i = 0; i < childTickets; i++)
            {
                Reservation reservation = new Reservation
                {
                    ShowtimeID = showtimeID,
                    Type       = "Child",
                    Email      = email
                };
                _context.Reservations.Add(reservation);
            }

            if (reservationsMade + adultTickets + childTickets == roomCapacity)
            {
                Showtime showtime = await _context.Showtimes.FindAsync(showtimeID);

                showtime.Soldout = true;
            }

            await _context.SaveChangesAsync();

            return(Ok());
        }
Beispiel #19
0
        public ActionResult AddToSchedule(int ScheduleID)
        {
            Showtime st = new Showtime();

            Schedule schedule = db.Schedules.Find(ScheduleID);

            st.Schedule = schedule;

            return(View(st));
        }
Beispiel #20
0
        private Showtime CreateShowtime(Tuple <DayOfWeek, string> date)
        {
            var showtime = new Showtime {
                Id = Guid.NewGuid().ToString(), DateTime = dateBuilder.GetDate(date.Item1, date.Item2)
            };

            LogHelper.Information(this, $"Showtime created ({date.Item1.ToString()},{date.Item2}): {showtime.DateTime.ToString()}");

            return(showtime);
        }
 public ActionResult Edit([Bind(Include = "ShowtimeID,Time")] Showtime showtime)
 {
     if (ModelState.IsValid)
     {
         db.Entry(showtime).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(showtime));
 }
Beispiel #22
0
        public ActionResult AddToOrder(Ticket t, int SelectedShowtime, int[] AvailableSeats)
        {
            Order ord = new Order();

            foreach (int i in AvailableSeats)
            {
                Ticket tick = new Ticket();
                tick.Seat = new Seat();

                tick.Seat.SeatName = GetSeatName(i);
                tick.Seat.SeatID   = i;
            }

            //Find the product associated with the int SelectedCourse
            Showtime showtime = db.Showtimes.Find(SelectedShowtime);


            //set the product property of the order detail to this newly found product
            //if (t.Showtime.ShowtimeTime <= DateTime.Now)
            //{
            t.Showtime = showtime;
            //}
            //else
            //{
            //    RedirectToAction("Order", "AddToOrder");
            //}


            //Find the order associated with the order detail
            ord = db.Orders.Find(t.Order.OrderID);

            //set the property of the order detail to this newly found order
            t.Order = ord;

            //set the value of the product fee
            t.TicketPrice = showtime.Price;

            //Limited Capacity Logic
            if (AvailableSeats == null)
            {
                RedirectToAction("SoldOut", "Orders");
            }

            if (ModelState.IsValid)//model meets all requirements
            {
                //add the order detail to the database
                db.Tickets.Add(t);
                db.SaveChanges();
                return(RedirectToAction("Details", "Orders", new { id = ord.OrderID }));
            }

            //model state is not valid
            ViewBag.AllShowtimes = GetAllShowtimes();
            return(View(t));
        }
        public async Task <IHttpActionResult> GetShowtime(int id)
        {
            Showtime showtime = await db.Showtimes.FindAsync(id);

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

            return(Ok(showtime));
        }
Beispiel #24
0
 public Boolean check(Showtime showtime)
 {
     foreach (var show in showtimes)
     {
         if (show.MovieId == showtime.MovieId)
         {
             return(false);
         }
     }
     return(true);
 }
 public ActionResult Edit([Bind(Include = "ID,Date,Time,Theatre,FilmID")] Showtime showtime)
 {
     if (ModelState.IsValid)
     {
         db.Entry(showtime).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.FilmID = new SelectList(db.Films, "ID", "Title", showtime.FilmID);
     return(View(showtime));
 }
    public void VerifiesReserveSeats()
    {
      Showtime showTime = ApiConsumer.RequestGet<Showtime>(new Uri("http://localhost:8080/rest/showtime/3"));
      List<Seat> bookedSeats = new List<Seat>();
      showTime.Seats.ToList().ForEach(block => bookedSeats.AddRange(block.Where(seat => seat.Booked)));

      foreach (Seat currentSeat in this.Reserve.Seats)
      {
        CollectionAssert.Contains(bookedSeats, currentSeat);
      }
    }
        public ActionResult Create([Bind(Include = "ShowtimeID,Time")] Showtime showtime)
        {
            if (ModelState.IsValid)
            {
                db.Showtimes.Add(showtime);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(showtime));
        }
        public Showtime GetShowtimeById(int id)
        {
            Showtime showtime = dbContext.Showtime
                                .Where(s => s.Id == id)
                                .Include(m => m.Movie)
                                .Include(r => r.Room)
                                .Include(st => st.ScreenType)
                                .FirstOrDefault();

            return(showtime);
        }
Beispiel #29
0
        public async Task <IActionResult> Create([Bind("Id,MovieId,ShowDateTime")] Showtime showtime)
        {
            if (ModelState.IsValid)
            {
                _context.Add(showtime);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieId"] = new SelectList(_context.Movie, "Id", "Title", showtime.MovieId);
            return(View(showtime));
        }
 public ActionResult Edit([Bind(Include = "Showtime_ID,Screen_ID,Movie_ID,Show_Date,Show_Time")] Showtime showtime)
 {
     if (ModelState.IsValid)
     {
         db.Entry(showtime).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Movie_ID  = new SelectList(db.Movies, "Movie_ID", "Movie_Name", showtime.Movie_ID);
     ViewBag.Screen_ID = new SelectList(db.Screens, "Screen_ID", "Screen_ID", showtime.Screen_ID);
     return(View(showtime));
 }