private void GenerateDelivery(int orderId) { if (orderId > 1) { var newDelivery = new DeliveryViewModel() { OrderId = orderId, }; db.Deliveries.Add(newDelivery); db.SaveChanges(); } }
public ActionResult ReviewOrder(List<CartViewModel> orders) { if (User.IsInRole("Customer")) { var orderList = Session["Order"] as List<CartViewModel>; var deliveryAddress = Session["DeliveryAddress"] as DeliveryAddressViewModel; string userId = User.Identity.GetUserId(); var orderItems = new List<OrderViewModel>(); if (orderList != null) { int newOrderId = 0; foreach (var item in orderList) { var newOrder = new OrderViewModel() { DtCreated = DateTime.UtcNow, ExpectedDeliveryDate = DateTime.UtcNow, RealDeliveryDate = DateTime.UtcNow, Status = "Active", Quantity = item.Quantity, UnitPrice = item.UnitPrice, Total = item.SubTotal, GrandTotal = item.GrandTotal, SupplierId = item.SupplierId, CustomerId = (from c in db.Customers where c.Id == userId select c.CustomerId).FirstOrDefault(), ModelId = item.ModelId, CustomerUserId = userId, ConfirmationCode = CodeGenerator(), SupplierUserId = (from s in db.Suppliers where s.SupplierId == item.SupplierId select s.Id).FirstOrDefault(), Notification = "Supplier" }; orderItems.Add(newOrder); db.Orders.Add(newOrder); db.SaveChanges(); db.Entry(newOrder).GetDatabaseValues(); newOrderId = newOrder.OrderId; var newOrderDelivery = new DeliveryViewModel() { OrderId = newOrderId, Street = deliveryAddress.Street, City = deliveryAddress.City, Zipcode = deliveryAddress.Zipcode, ExpectedDeliveryDate = DateTime.UtcNow, ActualDeliveryDate = DateTime.UtcNow, DateCreated = DateTime.UtcNow, Status = "Processing" }; db.Deliveries.Add(newOrderDelivery); db.SaveChanges(); GeneratePayment(newOrder.OrderId); string supplierEmail = (from s in db.Suppliers where s.SupplierId == newOrder.SupplierId select s.Email).FirstOrDefault(); string customerEmail = (from c in db.Customers where c.CustomerId == newOrder.CustomerId select c.Email).FirstOrDefault(); new Task(() => { SendNotification(supplierEmail, "Supplier"); }).Start(); new Task(() => { SendNotification(customerEmail, "Customer"); }).Start(); } Session.Remove("Order"); Session.Remove("Cart"); Session.Remove("DeliveryAddress"); //return RedirectToAction("Invoice", "Order", orderItems); //return View("../Order/Invoice", orderItems); return RedirectToAction("CustomerGetOrder", "Customer", new { id = newOrderId, message = ManageMessageId.AddOrderSuccess }); } } return View("../Home/Error404"); }