public ActionResult AddOrder() { // Remove the item from the cart var cart = ShoppingCart.GetCart(this.HttpContext); var lstItems = cart.GetCartItems(); if (lstItems.Count > 0) { var order = new Order(); var oUser = new SmartMarket.Web.Business.User(); long userId = oUser.GetUserId(User.Identity.Name); var oCustomer = db.Customers.SingleOrDefault(c => c.UserId == userId); if (oCustomer != null) { order.CustomerId = oCustomer.Id; order.OrderDate = DateTime.Now; order = db.Orders.Add(order); db.SaveChanges(); if (cart.CreateOrder(order) == order.Id) { return (Json(new { success = true, Message = "Order has been added successfully", OrderId = order.Id })); } db.Orders.Remove(order); db.SaveChanges(); return(Json(new { success = false, Message = "Unable to add order right now!", OrderId = -1 })); } return(Json(new { success = false, Message = "Not a valid customer", OrderId = -1 })); } return(Json(new { success = false, Message = "The shopping cart is empty!", OrderId = -1 })); }
// We're using HttpContextBase to allow access to cookies. public long GetCartId(HttpContextBase context) { if (context.Session[CartSessionKey] == null) { if (!string.IsNullOrWhiteSpace(context.User.Identity.Name)) { var oUser = new SmartMarket.Web.Business.User(); long userId = oUser.GetUserId(context.User.Identity.Name); context.Session[CartSessionKey] = userId; } else { // Generate a new random GUID using System.Guid class Guid tempCartId = Guid.NewGuid(); // Send tempCartId back to client as a cookie context.Session[CartSessionKey] = tempCartId.ToString(); } } return(long.Parse(context.Session[CartSessionKey].ToString())); }