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 })); }
public ActionResult SubmitCar(CarInfoVM obj) { CarRentCheckoutVM objToPass = new CarRentCheckoutVM(obj); return(View("CarRentCheckout", objToPass)); }