public async Task<ActionResult> AddressAndPayment(Order order) { var formCollection = Request.Form; try { if (string.Equals(formCollection.GetValues("PromoCode").FirstOrDefault(), PromoCode, StringComparison.OrdinalIgnoreCase) == false) { return View(order); } else { order.Username = User.Identity.GetUserName(); order.OrderDate = DateTime.Now; //Add the Order db.Orders.Add(order); //Process the order var cart = ShoppingCart.GetCart(db,CartId.GetCartId( HttpContext)); cart.CreateOrder(order); // Save all changes await db.SaveChangesAsync(CancellationToken.None); return RedirectToAction("Complete", new { id = order.OrderId }); } } catch { //Invalid - redisplay with errors return View(order); } }
// // GET: /Checkout/ public async Task<ActionResult> AddressAndPayment() { var id = User.Identity.GetUserId(); var user = await db.Users.FirstOrDefaultAsync(o => o.Id == id); var order = new Order { Name = user.Name, Email = user.Email, Username = user.UserName }; return View(order); }
/// <summary> /// Loads the specified order in the order details page. /// </summary> private void GoToDetailsPage(Contoso.Models.Order order) => Frame.Navigate(typeof(OrderDetailPage), order);
public int CreateOrder(Order order) { decimal orderTotal = 0; var cartItems = GetCartItems(); // Iterate over the items in the cart, adding the order details for each foreach (var item in cartItems) { //var product = _db.Products.Find(item.ProductId); var product = _db.Products.Single(a => a.ProductId == item.ProductId); var orderDetail = new OrderDetail { ProductId = item.ProductId, OrderId = order.OrderId, UnitPrice = product.Price, Quantity = item.Count, }; // Set the order total of the shopping cart orderTotal += (item.Count * product.Price); _db.OrderDetails.Add(orderDetail); } // Set the order's total to the orderTotal count order.Total = orderTotal; // Empty the shopping cart EmptyCart(); // Return the OrderId as the confirmation number return order.OrderId; }