예제 #1
0
        // ----------------------------- this view is only for static run (TEMP VIEW)
        public ActionResult PackageCheckout()
        {
            PackageCheckoutVM objToPass = new PackageCheckoutVM()
            {
                hotelName             = "Mercure Muc Freising Airport",
                numberOfRooms         = 2,
                roomDescription       = "1 DOUBLE BED NONSMOKING FEEL YOURSELF AT HOME",
                composition           = "Couple + 3 Children",
                departureFlightNumber = "681",
                returnFlightNumber    = "680",
                departureDate         = "10.09.2018",
                returnDate            = "17.09.2018",
                departureLocation     = "Tel Aviv",
                returnLocation        = "Munich",
                numberOfTickets       = 5,
                airline  = "LH",
                totalFee = "7592.32",
            };

            return(View(objToPass));
        }
예제 #2
0
        public ActionResult SubmitPackage(PackageInfoVM obj)
        {
            int numberOfTickets = CalculateNumberOfTickets(obj.composition);

            PackageCheckoutVM objToPass = new PackageCheckoutVM()
            {
                destCountry           = obj.flight.destinationCountry,
                hotelName             = obj.hotel.hotelName,
                numberOfRooms         = obj.hotel.numberOfRooms,
                roomDescription       = obj.hotel.room[0].roomDescription,
                composition           = obj.composition,
                departureFlightNumber = obj.flight.outbound.FlightNumber,
                returnFlightNumber    = obj.flight.inbound.FlightNumber,
                departureDate         = obj.flight.departureDate,
                returnDate            = obj.flight.returnDate,
                departureLocation     = obj.flight.originCity,
                returnLocation        = obj.flight.destinationCity,
                numberOfTickets       = numberOfTickets,
                airline  = obj.flight.airline,
                totalFee = obj.price.ToString(),
            };

            return(View("PackageCheckout", objToPass));
        }
예제 #3
0
        public ActionResult SubmitOrder(PackageCheckoutVM obj)
        {
            DataLayer dl = new DataLayer();

            DateTime today        = DateTime.Today;
            string   date         = today.ToString("dd/MM/yyyy").Replace("/", ".");
            double   totalFee     = Convert.ToDouble(obj.totalFee.Replace("$", ""));
            bool     sameCustomer = false;

            // first check if customer already exists in table
            List <Customer> customerFromDB = (from u in dl.customers
                                              where u.Email.ToLower() == obj.email.ToLower()
                                              select u).ToList <Customer>();

            if (customerFromDB.Count != 0) // if customer already exists
            {
                // check if the input is the same as the customer data
                if (customerFromDB[0].FullName != obj.customerName || customerFromDB[0].ID != obj.id)
                {
                    TempData["error"] = "This email address already exist in our records with different name and/or different id!";
                    return(View("PackageCheckout", obj));
                }
                else if (customerFromDB[0].Location != obj.address || customerFromDB[0].PhoneNumber != obj.phone)
                {
                    // update: delete this row and later add new customer row
                    dl.customers.Remove(customerFromDB[0]);
                    dl.SaveChanges();
                }
                // else: same row - no need to update
                else
                {
                    sameCustomer = true;
                }
            }

            // --------------------- create object and save to table 1: Order
            Order order = new Order()
            {
                CreditCard       = obj.creditCard,
                CustomerEmail    = obj.email,
                OrderDate        = date,
                Status           = 0,
                TotalPayment     = totalFee,
                Type             = "Package",
                OrderDestination = obj.destCountry,
            };

            dl.orders.Add(order); // adding in memory and not to DB //
            dl.SaveChanges();
            int INVOICE = order.InvoiceNumber;

            // --------------------- create object and save to table 2: PackageOrder
            PackageOrder PackageOrder = new PackageOrder()
            {
                InvoiceID             = INVOICE,
                Composition           = obj.composition,
                DepartureLocation     = obj.departureLocation,
                ArrivalLocation       = obj.returnLocation,
                DepartureDate         = obj.departureDate,
                ReturnDate            = obj.returnDate,
                Outbound_FlightNumber = int.Parse(obj.departureFlightNumber),
                Inbound_FlightNumber  = int.Parse(obj.returnFlightNumber),
                Airline         = obj.airline,
                NumberOfTickets = obj.numberOfTickets,
                HotelName       = obj.hotelName,
                NumberOfRooms   = obj.numberOfRooms,
                RoomDescription = obj.roomDescription,
                Reviewed        = 0
            };

            dl.packageOrders.Add(PackageOrder); // adding in memory and not to DB //

            // --------------------- create object and save to table 3: Customer
            if (!sameCustomer)
            {
                Customer customer = new Customer()
                {
                    Email       = obj.email,
                    FullName    = obj.customerName,
                    Location    = obj.location,
                    ID          = obj.id,
                    PhoneNumber = obj.phone
                };

                dl.customers.Add(customer); // adding in memory and not to DB //
            }

            dl.SaveChanges();

            // go to recipt
            return(RedirectToAction("ViewOrderReceipt", "Support", new { invoice = INVOICE }));
        }