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);
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        //[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));
        }