void NewOrder() { currentOrder = new PackageOrder(); //makes a random package order Display(currentOrder); spawner.Spawn(); orderActive = true; }
public static ViewPackageOrderVM returnPackage(Order order) { ViewPackageOrderVM ovm = new ViewPackageOrderVM(); DataLayer dl = new DataLayer(); ovm.invoice = order.InvoiceNumber; ovm.creditCardNumber = order.CreditCard; PackageOrder packageorder = (from x in dl.packageOrders where x.InvoiceID == ovm.invoice select x).ToList <PackageOrder>().FirstOrDefault(); ovm.orderDate = order.OrderDate; ovm.status = order.Status; ovm.email = order.CustomerEmail; ovm.ArrivalLocation = packageorder.ArrivalLocation; ovm.DetartureLocation = packageorder.DepartureLocation; ovm.DetartureDate = packageorder.DepartureDate; ovm.ReturnDate = packageorder.ReturnDate; ovm.outbound = packageorder.Outbound_FlightNumber; ovm.inbound = packageorder.Inbound_FlightNumber; ovm.hotelName = packageorder.HotelName; ovm.composition = packageorder.Composition; 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.roomdescription = packageorder.RoomDescription; ovm.numberOfRooms = packageorder.NumberOfRooms; ovm.totalPrice = order.TotalPayment; ovm.numTickets = packageorder.NumberOfTickets; ovm.Airline = packageorder.Airline; return(ovm); }
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 })); }
//set num displays to the correct num sprite based on the order values void Display(PackageOrder order) { nums[0].sprite = numSprites[order.blocks]; nums[1].sprite = numSprites[order.legos]; nums[2].sprite = numSprites[order.cars]; }
public async Task <IActionResult> PostAsync([FromBody] RegisterPackage command) { if (ModelState.IsValid) { Package package = Mapper.Map <Package>(command); // Checklist for package, order and product List <Product> products = new List <Product>(); List <Order> orders = new List <Order>(); bool packageIsChecked = false; bool orderIsChecked = false; foreach (var order in package.Orders) { // Get the order from order repository var ord = await _orderRepo.GetOrderAsync(order.OrderId); if (ord != null) { // Create a "PackageOrder" entity and map the relationships with package and order var packageOrder = new PackageOrder { Package = package, Order = ord, }; // Add both "PackageOrder" and "Order" to the package package.PackageOrders.Add(packageOrder); orders.Add(ord); } else { return(NotFound()); } } // Check if ALL the orders have the same value in order "Destination" // (NOTE: Orders must have the same destination in order to be packaged) if (orders.Count != 0) { orderIsChecked = !package.Orders .Select(o => o.Destination) .Distinct() .Skip(1) .Any(); } else { return(BadRequest()); } foreach (var product in package.Products) { // Get the product from product repository var prod = await _productRepo.GetProductAsync(product.ProductId); if (prod != null) { // Add the total weight to the package from all products package.WeightInKgMax += prod.Weight; // Create a "PackageProduct" entity and map the relationships with package and product var packageProduct = new PackageProduct { Package = package, Product = prod, }; // Add both "PackageProduct" and "Product" to the package package.PackageProducts.Add(packageProduct); products.Add(prod); } else { return(NotFound()); } } // Replace the current package "Orders" and "Products" with correct ones if (orders.Count != 0 && products.Count != 0) { package.Orders = orders; package.Products = products; } // Check if the package is of the type "Letterbox" and its total weight is less or equal to 2 // (NOTE: This is a "Letterbox" package) if (package.TypeOfPackage == "Letterbox package" && package.WeightInKgMax <= 2) { packageIsChecked = true; } // Check if the package is NOT of type "Letterbox" and its total weight is greater then 2 and less or equal to 20 // (NOTE: This is a "Package" of any kind) if (package.TypeOfPackage != "Letterbox package" && package.WeightInKgMax > 2 && package.WeightInKgMax <= 20) { packageIsChecked = true; } if (packageIsChecked == true && orderIsChecked == true) { // Insert Package package.Region = package.Orders.Select(o => o.Destination).FirstOrDefault(); package.ShippingStatus = "IN STOCK"; package.Transport = null; await _packageRepo.AddPackageAsync(package); return(CreatedAtRoute("GetPackageById", new { packageId = package.PackageId }, package)); } return(BadRequest()); } return(BadRequest()); }