private void SeedHallsAndSeats() { using (var context = new CinemaTicketsDbContext()) { if (!context.Database.Exists()) { for (int i = 1; i <= 8; i++) { var hall = new Hall { HallNumber = i }; context.Halls.Add(hall); for (int row = 1; row <= 10; row++) { for (int col = 1; col <= 10; col++) { var seat = new Seat() { Hall = hall, Row = row, Column = col }; context.Seats.Add(seat); } } } context.SaveChanges(); } } }
public ActionResult CreateProjection(FormCollection data) { var hallID = int.Parse(data["hallID"]); var movieID = int.Parse(data["movieID"]); var year = int.Parse(data["year"]); var month = int.Parse(data["month"]); var day = int.Parse(data["day"]); var hours = int.Parse(data["hours"]); var minutes = int.Parse(data["minutes"]); var date = new DateTime(year, month, day, hours, minutes, 0); var context = new CinemaTicketsDbContext(); using (context) { var projectionWithSameDate = context.Projections.FirstOrDefault(p => p.TimeOfProjection == date && p.HallID == hallID); if (!(projectionWithSameDate == null)) { return(new HttpStatusCodeResult(400, "There already is a projection set for that time for this hall")); } var hallFromDb = context.Halls.FirstOrDefault(h => h.HallID == hallID); var movieFromDb = context.Movies.FirstOrDefault(m => m.MovieID == movieID); if (hallFromDb == null || movieFromDb == null) { return(new HttpStatusCodeResult(400, "Something went wrong! :(")); } var projection = new Projection { Hall = hallFromDb, Movie = movieFromDb, TimeOfProjection = date }; context.Projections.Add(projection); var seats = projection.Hall.Seats.ToList(); foreach (var seat in seats) { context.Tickets.Add(new Ticket { IsSold = false, Projection = projection, Seat = seat }); } context.SaveChanges(); } return(new HttpStatusCodeResult(200, "OK")); }
public ActionResult CreateHall(int hallNumber) { var hallFromDb = this._hallService.GetHallByHallNumber(hallNumber); if (!(hallFromDb == null)) { return(new HttpStatusCodeResult(400, "There already is a hall with that number")); } var hallToAdd = new Hall { HallNumber = hallNumber }; try { using (var context = new CinemaTicketsDbContext()) { for (int row = 1; row <= 10; row++) { for (int col = 1; col <= 10; col++) { var seat = new Seat() { Hall = hallToAdd, Row = row, Column = col }; context.Seats.Add(seat); } } context.SaveChanges(); } } catch (Exception e) { return(new HttpStatusCodeResult(400, e.Message)); } return(new HttpStatusCodeResult(200, "Success")); }
public EmployeeService() { _context = new CinemaTicketsDbContext(); }
public ImageService() { this._context = new CinemaTicketsDbContext(); }
public ActionResult BuyTickets(FormCollection data) { var kidsRetirees = int.Parse(data["kidsRetirees"]); var students = int.Parse(data["students"]); var adults = int.Parse(data["adults"]); var projectionID = int.Parse(data["projectionID"]); var seats = data["seats"].Split(',').Select(int.Parse).ToArray(); List <decimal> ticketTypesPrices = new List <decimal>(); var ticketsBought = new Dictionary <Ticket, int[]>(); if (kidsRetirees != 0) { for (int i = 1; i <= kidsRetirees; i++) { ticketTypesPrices.Add(TicketPrices.kidsRetirees); } } if (students != 0) { for (int i = 1; i <= students; i++) { ticketTypesPrices.Add(TicketPrices.students); } } if (adults != 0) { for (int i = 1; i <= adults; i++) { ticketTypesPrices.Add(TicketPrices.adults); } } using (var context = new CinemaTicketsDbContext()) { try { var tickets = context.Projections.FirstOrDefault(p => p.ProjectionID == projectionID).Tickets.ToList(); var counter = 0; var usernameEmail = (string)Session["usernameEmail"]; foreach (var ticket in tickets) { foreach (var seat in seats) { if (ticket.SeatID == seat) { var userSoldCurrentTicket = context.Employees.FirstOrDefault(e => e.Email == usernameEmail); var currentSeat = ticket.Seat; ticket.IsSold = true; ticket.Price = ticketTypesPrices[counter]; ticket.Employee = userSoldCurrentTicket; counter++; ticketsBought[ticket] = new int[] { currentSeat.Row, currentSeat.Column }; } } } context.SaveChanges(); } catch (OptimisticConcurrencyException ex) { } } CacheViewModel.CacheModel(ticketsBought); return(new HttpStatusCodeResult(200, "OK")); }
public HallService() { this._context = new CinemaTicketsDbContext(); }
public MovieService(CinemaTicketsDbContext ctx) { _context = ctx; }
public HallService(CinemaTicketsDbContext ctx) { this._context = ctx; }
public ActionResult RedirectProjectionData(FormCollection data) { try { var kidsRetirees = int.Parse(data["kidsRetirees"]); var students = int.Parse(data["students"]); var adults = int.Parse(data["adults"]); var projectionID = int.Parse(data["projectionID"]); var totalPrice = decimal.Parse(data["totalPrice"]); var projectionTime = data["projectionTime"].Split(' '); Session["ticketDate"] = projectionTime[0]; Session["ticketHour"] = projectionTime[1] + projectionTime[2]; var seatDtos = new List <SeatDTO>(); using (var context = new CinemaTicketsDbContext()) { var projection = context.Projections.FirstOrDefault(p => p.ProjectionID == projectionID); var hallNumber = context.Halls.FirstOrDefault(h => h.HallID == projection.HallID).HallNumber; Session["hallNumber"] = hallNumber; var tickets = projection.Tickets.ToList(); foreach (var ticket in tickets) { var seatDto = new SeatDTO { Column = ticket.Seat.Column, Row = ticket.Seat.Row, HallID = ticket.Seat.HallID, SeatID = ticket.Seat.SeatID }; if (ticket.IsSold) { seatDto.IsTaken = true; } else { seatDto.IsTaken = false; } seatDtos.Add(seatDto); } } var model = new SeatViewModel() { Adults = adults, KidsRetirees = kidsRetirees, SeatDtos = seatDtos, Students = students, TotalPrice = totalPrice, ProjectionID = projectionID }; CacheViewModel.CacheModel(model); } catch (Exception e) { return(new HttpStatusCodeResult(400, "Something went wrong! :(")); } return(new HttpStatusCodeResult(200, "OK")); }
public ProjectionService() { this._context = new CinemaTicketsDbContext(); }
public MovieService() { _context = new CinemaTicketsDbContext(); }
public EmployeeService(CinemaTicketsDbContext ctx) { _context = ctx; }
public ImageService(CinemaTicketsDbContext ctx) { this._context = ctx; }
public ProjectionService(CinemaTicketsDbContext ctx) { this._context = ctx; }