コード例 #1
0
        public static ViewCarRentVM returnCarRent(Order order)
        {
            ViewCarRentVM ovm = new ViewCarRentVM();

            DataLayer dl = new DataLayer();

            ovm.invoice = order.InvoiceNumber;

            ovm.creditCardNumber = order.CreditCard;

            RentCarOrder carrentorder = (from x in dl.rentCarOrder
                                         where x.InvoiceID == ovm.invoice
                                         select x).ToList <RentCarOrder>().FirstOrDefault();

            ovm.orderDate = order.OrderDate;

            ovm.status = order.Status;

            ovm.email = order.CustomerEmail;

            ovm.PickUpDate = carrentorder.PickUpDate;

            ovm.DropOffDate = carrentorder.DropOffDate;

            ovm.days = carrentorder.Days;

            ovm.address = carrentorder.Address;

            ovm.provider = carrentorder.Provider;

            ovm.Price = carrentorder.Price;

            ovm.acrisscode = carrentorder.AcrissCode;

            Customer cust = (from x in dl.customers
                             where x.Email == ovm.email
                             select x).ToList <Customer>().FirstOrDefault();

            ovm.customerName = cust.FullName;

            ovm.customerId = cust.ID;
            ovm.totalPrice = order.TotalPayment;
            return(ovm);
        }
コード例 #2
0
        public ActionResult SubmitOrder(CarRentCheckoutVM obj)
        {
            DataLayer dl = new DataLayer();

            DateTime today        = DateTime.Today;
            string   date         = today.ToString("dd/MM/yyyy").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     = obj.price,
                Type             = "CarRent",
                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: RentCarOrder
            RentCarOrder rentCarOrder = new RentCarOrder()
            {
                InvoiceID   = INVOICE,
                AcrissCode  = obj.acriss_code,
                Address     = obj.address,
                Days        = Convert.ToInt32(obj.days),
                DropOffDate = obj.dropOffDate,
                PickUpDate  = obj.pickUpDate,
                Price       = obj.price,
                Provider    = obj.provider,
            };

            dl.rentCarOrder.Add(rentCarOrder); // 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    = "Israel", // benya's static function
                    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 }));
        }