コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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));
        }