public ActionResult CustomerRegistration(CustomerRegistrationViewModel model) { if (ModelState.IsValid) { if (db.Users.Any(x => x.Username == model.Username)) { ModelState.AddModelError("Username", "Username already exist"); return(View(model)); } if (db.Customers.Any(x => x.Email == model.Email)) { ModelState.AddModelError("Email", "Email already used to register"); return(View(model)); } User user = new User() { UserID = Guid.NewGuid(), Username = model.Username, Password = model.Password, Role = "Customer" }; db.Users.Add(user); db.SaveChanges(); Customer customer = new Customer() { CustomerID = user.UserID, Fname = model.Fname, Lname = model.Lname, Email = model.Email, ContactNum = model.ContactNum, IcNum = model.IcNum, Address = model.Address, DOB = model.DOB, RegistrationDate = DateTime.Today, Gender = model.Gender }; db.Customers.Add(customer); db.SaveChanges(); return(RedirectToAction("Login", "Account")); } return(View(model)); }
public ActionResult BookFlight(BookFlightViewModel bookingFlightViewModel) { string sessionUserId = (User.Identity.Name.Split('|')[1]); Booking booking = new Booking() { UserId = Convert.ToInt32(sessionUserId), FlightId = bookingFlightViewModel.FlightId, Seat = bookingFlightViewModel.SeatsSelected }; db.Bookings.Add(booking); db.SaveChanges(); return(RedirectToAction("BookedFlight", "Flight")); }
public ActionResult Register(RegisterViewModel registerViewModel) { if (!ModelState.IsValid) { return(View(registerViewModel)); } bool isNewRegistration = true; if (db.Users.Any(x => x.Username == registerViewModel.Username)) { ModelState.AddModelError("username", "Username is already taken."); isNewRegistration = false; } if (!isNewRegistration) { return(View(registerViewModel)); } string hashedPassword = PasswordHash.Encrypt(registerViewModel.Password); User user = new User() { Id = registerViewModel.Id, Username = registerViewModel.Username, Password = hashedPassword, }; db.Users.Add(user); db.SaveChanges(); return(RedirectToAction("Login", "Account")); }
public ActionResult FlightBooking(FlightBookingViewModel model, string[] Name, string[] Gender, string[] Nationality, string[] DOB, string btnProceed, string btnSubmit) { string seats = Request.Form["SeatsSelected"]; string[] seat = seats.Split(new char[] { ',' }); if (!String.IsNullOrEmpty(btnProceed)) { string bookedSeats = String.Join(",", (from b in db.Booking_Detail join s in db.Seat_Detail on b.BookingID equals s.BookingID where b.FlightID == model.flightID select s.SeatID).ToArray()); ViewBag.BookedSeats = bookedSeats; ViewBag.SelectedSeats = seats; var flightDetail = (from f in db.Flight_Detail where f.FlightID == model.flightID select f).FirstOrDefault(); var priceList = (from p in db.Pricings where p.FlightID == model.flightID select p).ToList(); var firstClassPriceList = (from pl in priceList where pl.ClassCategory == "First" select pl).OrderBy(x => x.Price).ToList(); var businessClassPriceList = (from pl in priceList where pl.ClassCategory == "Business" select pl).OrderBy(x => x.Price).ToList(); var economyClassPriceList = (from pl in priceList where pl.ClassCategory == "Economy" select pl).OrderBy(x => x.Price).ToList(); model.numberOfSelectedSeats = seat.Length; model.bookedSeats = seat; model.flightDetail = flightDetail; model.firstClassPriceList = firstClassPriceList; model.businessClassPriceList = businessClassPriceList; model.economyClassPriceList = economyClassPriceList; ViewBag.Disable = "disable"; } if (!String.IsNullOrEmpty(btnSubmit)) { Guid sessionUserID = new Guid(User.Identity.Name.Split('|')[1].ToString()); PriceCalculation priceCalculation = new PriceCalculation(); Booking_Detail bookingDetail = new Booking_Detail() { BookingID = Guid.NewGuid(), FlightID = model.flightID, BookedByCustomerID = sessionUserID, Amount = priceCalculation.GetTotalPrice(DOB, seat, model.flightID), BookingDateTime = DateTime.Now }; db.Booking_Detail.Add(bookingDetail); db.SaveChanges(); for (int i = 0; i < seat.Length; i++) { Seat_Detail seatDetail = new Seat_Detail() { TicketID = Guid.NewGuid(), BookingID = bookingDetail.BookingID, SeatID = Convert.ToInt16(seat[i]) }; db.Seat_Detail.Add(seatDetail); db.SaveChanges(); Passenger passenger = new Passenger() { PassengerID = Guid.NewGuid(), Name = Name[i], Gender = Gender[i], DOB = Convert.ToDateTime(DOB[i]), Nationality = Nationality[i], TicketID = seatDetail.TicketID }; db.Passengers.Add(passenger); db.SaveChanges(); } return(RedirectToAction("Home", "Customer")); } return(View(model)); }