private SelectList GetAllSeats() { List <Seat> AllSeats = FindAvailableSeats.GetAllSeats().ToList(); Seat NoSeat = new Seat() { SeatID = 0, Name = "Select Seat" }; AllSeats.Add(NoSeat); SelectList seats = new SelectList(AllSeats.OrderBy(t => t.SeatID), "SeatID", "Name"); return(seats); }
public async Task <IActionResult> CreateOther([Bind("TicketID,CustomerFirstName,CustomerLastName,CustomerEmail,CustomerAdvantageNum,SeatName,Price,Reservation, FlightDetail")] int SelectedSeat, TicketViewModel tvm, int SelectedCustomer) { // Find the Flight Detail FlightDetail flightDetail = _context.FlightDetails.Find(tvm.FlightDetail.FlightDetailID); //FlightDetail flightDetail = _context.FlightDetails.Find(svm.FlightDetail.FlightDetailID); tvm.FlightDetail = flightDetail; // Find the reservation Reservation res = _context.Reservations.Find(tvm.Reservation.ReservationID); tvm.Reservation = res; //get user info AppUser user = _context.Users.FirstOrDefault(u => u.AdvantageNum == SelectedCustomer); //AppUser user = _context.Users.Find(SelectedUser); tvm.User = user; string DateOfBirth = tvm.User.DOB.Substring(0, 2) + "/" + tvm.User.DOB.Substring(2, 2) + "/" + tvm.User.DOB.Substring(4, 2); DateTime DOB = DateTime.Parse(DateOfBirth); foreach (Seat seat in FindAvailableSeats.GetAllSeats()) { if (SelectedSeat == seat.SeatID) { tvm.SeatName = seat.Name; tvm.SeatFare = seat.FareType; } } Int32 age = DateTime.Now.Year - DOB.Year; if (DateTime.Now.DayOfYear < DOB.DayOfYear) { age = age - 1; } if (tvm.SeatFare == FareType.Economy) { if (age <= 12) { tvm.Price = (tvm.FlightDetail.BaseFare * (1 - CHILD_DISCOUNT)); } else if (age >= 65) { tvm.Price = (tvm.FlightDetail.BaseFare * (1 - SENIOR_DISCOUNT)); } else { tvm.Price = tvm.FlightDetail.BaseFare; } } else if (tvm.SeatFare == FareType.First) { tvm.Price = tvm.FlightDetail.BaseFare * FIRST_CLASS; } Ticket ticket = new Ticket(); ticket.Reservation = tvm.Reservation; ticket.FlightDetail = tvm.FlightDetail; //t.FlightDetail = fd; ticket.User = tvm.User; ticket.CustomerFirstName = tvm.User.FirstName; ticket.CustomerLastName = tvm.User.LastName; ticket.CustomerEmail = tvm.User.Email; ticket.CustomerAdvantageNum = tvm.User.AdvantageNum; ticket.CustomerDOB = tvm.User.DOB; ticket.SeatName = tvm.SeatName; ticket.SeatFare = tvm.SeatFare; ticket.Price = tvm.Price; ModelState.Clear(); TryValidateModel(ticket); if (ModelState.IsValid) { _context.Add(ticket); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Reservations", new { id = ticket.Reservation.ReservationID })); } ViewBag.AllSeats = GetAllSeats(); ViewBag.AllCustomers = GetAllCustomers(); return(View(tvm)); }
public async Task <IActionResult> CreateManagement([Bind("AdvantageNum, ReservationNum, FlightNum, Date, Seat, Reservation")] ManagementViewModel mvm, Int32 SelectedCustomer, Int32 SelectedSeat) { Reservation reservation = new Reservation(); reservation.ReservationNum = mvm.ReservationNum; mvm.Reservation = reservation; Ticket ticket = new Ticket(); var query = from fd in _context.FlightDetails select fd; query = query.Where(fd => fd.Flight.FlightNum == mvm.FlightNum & fd.Date == mvm.Date); List <FlightDetail> fds = (query.ToList()); FlightDetail NoFlightDetail = new FlightDetail { FlightDetailID = 0, FlightNum = 0 }; fds.Add(NoFlightDetail); FlightDetail fd1 = fds[0]; ticket.FlightDetail = fd1; AppUser user = _context.Users .FirstOrDefault(u => u.AdvantageNum == SelectedCustomer); mvm.Reservation.AppUser = user; ticket.User = user; mvm.Reservation.ReservationDate = DateTime.Now; //reservation.ReservationID = mvm.ReservationID; foreach (Seat seat in FindAvailableSeats.GetAllSeats()) { if (SelectedSeat == seat.SeatID) { ticket.SeatName = seat.Name; ticket.SeatFare = seat.FareType; } } ticket.Reservation = mvm.Reservation; ticket.CustomerFirstName = user.FirstName; ticket.CustomerLastName = user.LastName; ticket.FlightDetail.FlightNum = mvm.FlightNum; string DateOfBirth = user.DOB.Substring(0, 2) + "/" + user.DOB.Substring(2, 2) + "/" + user.DOB.Substring(4, 2); DateTime DOB = DateTime.Parse(DateOfBirth); Int32 age = DateTime.Now.Year - DOB.Year; if (DateTime.Now.DayOfYear < DOB.DayOfYear) { age = age - 1; } if (ticket.SeatFare == FareType.Economy) { if (age <= 12) { ticket.Price = (ticket.FlightDetail.BaseFare * (1 - CHILD_DISCOUNT)); } else if (age >= 65) { ticket.Price = (ticket.FlightDetail.BaseFare * (1 - SENIOR_DISCOUNT)); } else { ticket.Price = ticket.FlightDetail.BaseFare; } } else if (ticket.SeatFare == FareType.First) { ticket.Price = ticket.FlightDetail.BaseFare * FIRST_CLASS; } mvm.Reservation.Tickets.Add(ticket); if (ModelState.IsValid) { _context.Add(mvm.Reservation); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Reservations", new { reservationId = mvm.Reservation.ReservationID })); // No more user input } return(View(mvm.Reservation)); }
//[Authorize(Roles = "Customer")] public async Task <IActionResult> Create([Bind("TicketID,CustomerFirstName,CustomerLastName,CustomerEmail,CustomerAdvantageNum,SeatName,Price,Reservation, FlightDetail")] Ticket ticket, int SelectedSeat, SearchViewModel svm) { // Find the Flight Detail //FlightDetail flightDetail = _context.FlightDetails.Find(ticket.FlightDetail.FlightDetailID); FlightDetail flightDetail = _context.FlightDetails.Find(svm.FlightDetail.FlightDetailID); ticket.FlightDetail = flightDetail; // Find the reservation Reservation res = _context.Reservations.Find(ticket.Reservation.ReservationID); ticket.Reservation = res; ticket.User = await _userManager.FindByNameAsync(User.Identity.Name); ticket.CustomerFirstName = ticket.User.FirstName; ticket.CustomerLastName = ticket.User.LastName; ticket.CustomerEmail = ticket.User.Email; ticket.CustomerDOB = ticket.User.DOB; ticket.CustomerAdvantageNum = ticket.User.AdvantageNum; string DateOfBirth = ticket.CustomerDOB.Substring(0, 2) + "/" + ticket.CustomerDOB.Substring(2, 2) + "/" + ticket.CustomerDOB.Substring(4, 2); DateTime DOB = DateTime.Parse(DateOfBirth); foreach (Seat seat in FindAvailableSeats.GetAllSeats()) { if (SelectedSeat == seat.SeatID) { ticket.SeatName = seat.Name; ticket.SeatFare = seat.FareType; } } Int32 age = DateTime.Now.Year - DOB.Year; if (DateTime.Now.DayOfYear < DOB.DayOfYear) { age = age - 1; } if (ticket.SeatFare == FareType.Economy) { if (age <= 12) { ticket.Price = (ticket.FlightDetail.BaseFare * (1 - CHILD_DISCOUNT)); } else if (age >= 65) { ticket.Price = (ticket.FlightDetail.BaseFare * (1 - SENIOR_DISCOUNT)); } else { ticket.Price = ticket.FlightDetail.BaseFare; } } else if (ticket.SeatFare == FareType.First) { ticket.Price = ticket.FlightDetail.BaseFare * FIRST_CLASS; } //ROUND TRIP // Find the Flight Detail //FlightDetail flightDetail = _context.FlightDetails.Find(ticket.FlightDetail.FlightDetailID); /* * FlightDetail flightDetail2 = _context.FlightDetails.Find(svm.FlightDetail2.FlightDetailID); * * ticket2.FlightDetail = flightDetail2; * * // Find the reservation * Reservation res2 = _context.Reservations.Find(ticket.Reservation.ReservationID); * ticket2.Reservation = res2; * * ticket2.User = await _userManager.FindByNameAsync(User.Identity.Name); * * ticket2.CustomerFirstName = ticket2.User.FirstName; * ticket2.CustomerLastName = ticket2.User.LastName; * ticket2.CustomerEmail = ticket2.User.Email; * ticket2.CustomerDOB = ticket2.User.DOB; * ticket2.CustomerAdvantageNum = ticket2.User.AdvantageNum; * * string DateOfBirth2 = ticket2.CustomerDOB.Substring(0, 2) + "/" + ticket2.CustomerDOB.Substring(2, 2) + "/" + ticket2.CustomerDOB.Substring(4, 2); * DateTime DOB2 = DateTime.Parse(DateOfBirth2); * * foreach (Seat seat in FindAvailableSeats.GetAllSeats()) * { * if (SelectedSeat == seat.SeatID) * { * ticket2.SeatName = seat.Name; * ticket2.SeatFare = seat.FareType; * } * } * Int32 age2 = DateTime.Now.Year - DOB2.Year; * if (DateTime.Now.DayOfYear < DOB2.DayOfYear) * { * age2 = age2 - 1; * } * if (ticket2.SeatFare == FareType.Economy) * { * if (age2 <= 12) * { * ticket2.Price = (ticket2.FlightDetail.BaseFare * (1 - CHILD_DISCOUNT)); * } * else if (age2 >= 65) * { * ticket2.Price = (ticket2.FlightDetail.BaseFare * (1 - SENIOR_DISCOUNT)); * } * else * { * ticket2.Price = ticket2.FlightDetail.BaseFare; * } * } * else if (ticket2.SeatFare == FareType.First) * { * ticket2.Price = ticket2.FlightDetail.BaseFare * FIRST_CLASS; * } * */ if (ModelState.IsValid) { _context.Add(ticket); //_context.Add(ticket2); await _context.SaveChangesAsync(); return(RedirectToAction("Details", "Reservations", new { id = ticket.Reservation.ReservationID })); } ViewBag.AllSeats = GetAllSeats(); return(View(ticket)); }