public bool AddTicketToDB(Film film, int customerID, int timeSessionFilm, SeatState seatState) { //get time session BookingTicket result = new BookingTicket(); try { var resultTimeSession = _timeSessionRepository.GetSingleById(timeSessionFilm); //ticket detail result.BookingTicketPrefix = "TIC"; result.BookingTicketFilmID = film.FilmID; result.BookingTicketPrice = 0; result.BookingTicketRoomID = 1; result.BookingPaymentDate = DateTime.Now; result.BookingTicketStatusID = StatusCommonConstrants.ACTIVE; result.BookingTicketTimeDetail = resultTimeSession.TimeDetail; result.CustomerID = customerID; //state seat detail resultTimeSession.SeatTableState = BookingTimeHelpers.ConvertBookingSessionToJson(seatState); //add _bookingTicketRepository.Add(result); _unitOfWork.Commit(); return(true); } catch (Exception ex) { _unitOfWork.RollbackTran(); return(false); } return(false); }
public BookingTicket Subscribe(string userId, Guid courseId) { var ticket = new BookingTicket(); var course = Db.Activities.OfType <Course>().SingleOrDefault(x => x.Id == courseId); var student = GetStudent(userId); ticket.Course = course; ticket.UserId = userId; var occurrence = course.Occurrence; OccurrenceSubscription subscription = null; using (var transaction = Db.Database.BeginTransaction()) { subscription = occurrence.Subscriptions.FirstOrDefault(x => x.UserId.Equals(userId)); var bookingLists = GetBookingLists(occurrence.Id); var bookingState = new BookingState(); bookingState.Student = student; bookingState.Occurrence = occurrence; bookingState.BookingLists = bookingLists; bookingState.Init(); var myBookingList = bookingState.MyBookingList; if (subscription != null) { DeleteSubscription(subscription); if (myBookingList != null && !subscription.OnWaitingList) { var succeedingBooking = myBookingList.GetSucceedingBooking(); if (succeedingBooking != null) { succeedingBooking.Subscription.OnWaitingList = false; ticket.SucceedingSubscription = succeedingBooking.Subscription; } } } else { if (myBookingList != null) { subscription = new OccurrenceSubscription(); subscription.TimeStamp = DateTime.Now; subscription.Occurrence = occurrence; subscription.UserId = userId; subscription.OnWaitingList = bookingState.AvailableSeats <= 0; Db.Subscriptions.Add(subscription); ticket.Subscription = subscription; } } Db.SaveChanges(); transaction.Commit(); } return(ticket); }
public JsonResult MakeOrder(string ticketListStr, string email, string phone, string filmName, string cinemaName, string date, string roomName, string startTime) { JArray list = JArray.Parse(ticketListStr); List <Ticket> ticketList = new List <Ticket>(); //create customer Customer cus = new Customer(); cus.email = email; cus.phone = phone; int cusId = new CustomerService().createCustomer(cus);//get cusId //create order BookingTicket order = new BookingTicket(); order.quantity = list.Count; order.bookingDate = DateTime.Today; order.customerId = cusId; order.paymentCode = RandomUtility.RandomString(9); int orderId = new BookingTicketService().CreateOrder(order); foreach (JObject item in list) { int ticketId = (int)item.GetValue("ticketId"); Ticket aTicket = new TicketService().FindByID(ticketId); if (aTicket.ticketStatus == TicketStatus.buying) { aTicket.ticketStatus = TicketStatus.buyed; //update ticket price double price = (double)new TypeOfSeatService().FindByID( (new SeatService().FindByID(aTicket.seatId).typeSeatId)).price; aTicket.price = price; string code = aTicket.ticketId + RandomUtility.RandomString(9); aTicket.paymentCode = code; aTicket.bookingId = orderId; new TicketService().Update(aTicket); } ticketList.Add(aTicket); } //send email for customer string mailContent = getEmailContent(ticketList, order, filmName, cinemaName, date, roomName, startTime); string mailSubject = "CinemaBookingTicket - Mã vé xem phim tại " + cinemaName; MailUtility.SendEmail(mailSubject, mailContent, email); var obj = ticketList .Select(item => new { ticketId = item.ticketId, ticketStatus = item.ticketStatus, }); return(Json(obj)); }
private string getEmailContent(List <Ticket> ticketList, BookingTicket bt, string filmName, string cinemaName, string date, string roomName, string startTime) { string content = "Chúc mừng quý khách đã đặt vé thành công!"; content += "Phim " + filmName + "\n"; content += "Tại " + cinemaName + "\n"; content += date + " - " + startTime + " - " + roomName + "\n"; content += "Mã đặt vé của bạn là: " + bt.paymentCode + "\n"; content += "Mã từng vé của bạn là: \n"; for (int i = 0; i < ticketList.Count; i++) { Ticket aTicket = ticketList[i]; Seat seat = new SeatService().FindByID(aTicket.seatId); content += " " + (i + 1) + ". Ghế: " + ConstantArray.Alphabet[(int)seat.py] + "" + ((int)seat.px + 1) + "- Mã vé: " + aTicket.paymentCode + "\n"; } content += "Chúc quý khách xem phim vui vẻ"; return(content); }
public async Task <IActionResult> Thanks(int?id, int seatsInput) { var movie = _context.Conjunction .Where(c => c.Id == id) .Include(m => m.Movie); foreach (var i in movie) { i.Movie.SeatsNr -= seatsInput; } var context = _context.Conjunction .Where(c => c.Id == id) .Include(m => m.Movie) .Include(r => r.Room); foreach (var i in context) { tempmovie = i.Movie; tempRoom = i.Room; temptstatus = i.Status; } ticket = new BookingTicket() { Movie = tempmovie, Room = tempRoom, BookingDate = DateTime.Now }; _context.Add(ticket); await _context.SaveChangesAsync(); var view = _context.BookingTickets .Include(t => t.Movie) .Include(t => t.Room).OrderByDescending(t => t.Id).ToList(); return(View(view)); }
public int CreateOrder(BookingTicket entity) { return(bookingTicketRepository.CreateOrder(entity)); }
public void Update(BookingTicket entity) { bookingTicketRepository.Update(entity); }
public void Create(BookingTicket entity) { bookingTicketRepository.Create(entity); }
public ActionResult Booking(BookingTicket ticket) { if (ModelState != null) { Trip trip = db.Trips.Include(c => c.Bus).Include(c => c.Bus.BookedSeats).Include(c => c.Line).SingleOrDefault(c => c.Id == ticket.Trip); if (trip != null) { var FreeSeats = trip.Bus.MaximumSeats; if (trip.Bus.BookedSeats.Count != 0) { FreeSeats = trip.Bus.MaximumSeats - trip.Bus.BookedSeats.Count; } if (FreeSeats >= ticket.NumberOfChairs) { var UserId = User.Identity.GetUserId(); ApplicationUser user = db.Users.Single(c => c.Id.Equals(UserId)); if (user != null) { Passenger passenger = db.Passengers.SingleOrDefault(c => c.ApplicationUser.Id == user.Id); if (passenger == null) { //Creating Passenger and Adding it to DB passenger = new Passenger(); passenger.ApplicationUser = user; passenger.Tickets = new List <Models.Ticket>(); db.Passengers.Add(passenger); db.SaveChanges(); } else if (passenger != null && passenger.Blocked == false) { if (passenger.Tickets == null) { passenger.Tickets = new List <Models.Ticket>(); } var BookedSeats = trip.Bus.BookedSeats; List <int> SeatsNumbers = new List <int>(); foreach (var Seat in BookedSeats) { if (Seat.IsAvailable == true) { SeatsNumbers.Add(Seat.SeatNumber); } } for (int i = 0; i < ticket.NumberOfChairs; i++) { for (int y = 0; y < trip.Bus.MaximumSeats; y++) { if (!SeatsNumbers.Contains(y)) { //Initializate new Seat Seat one = new Seat { IsAvailable = false, PassengerId = passenger.Id, SeatNumber = y + 1 }; //Save Seat in DB and add it in BookedSeats in Bus of the particilar Trip //Seat SeatId = db.Seats.Add(one); trip.Bus.BookedSeats.Add(one); SeatsNumbers.Add(y); break; } } } Ticket Newticket = new Ticket { Trip = trip, PaymentId = 1, BookingTime = DateTime.Now.ToString(), IsBlocked = false }; passenger.Tickets.Add(Newticket); //Save new Seats to DB db.SaveChanges(); try { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("*****@*****.**"); mail.To.Add(User.Identity.GetUserName()); mail.Subject = "Booking Success Test"; SmtpServer.Port = 587; SmtpServer.UseDefaultCredentials = true; SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "[email protected]!#K*K0"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); } catch { return(RedirectToAction("Index"));//After Booking } } } else { //User Not Found return(HttpNotFound()); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } else { //Trip Not Found return(HttpNotFound()); } return(RedirectToAction("Index"));//After Booking } return(RedirectToAction("Booking")); }