public ActionResult AddCart(string sku, int count = 1, string viewName = "AddCart") { if (string.IsNullOrWhiteSpace(sku)) { return base.RedirectToAction("Index", "Home"); } int userId = (base.currentUser == null) ? -1 : base.currentUser.UserID; ShoppingCartHelper helper = new ShoppingCartHelper(userId); ShoppingCartItem cartItem = new ShoppingCartItem(); ProductModel model = new ProductModel(); Maticsoft.Model.Shop.Products.SKUInfo modelBySKU = this.skuBll.GetModelBySKU(sku); if (modelBySKU == null) { return base.Content("NOSKU"); } List<Maticsoft.Model.Shop.Products.SKUInfo> list2 = new List<Maticsoft.Model.Shop.Products.SKUInfo> { modelBySKU }; model.ProductSkus = list2; model.ProductInfo = this.productBll.GetModelByCache(modelBySKU.ProductId); if ((model.ProductInfo != null) && (model.ProductSkus != null)) { cartItem.Name = model.ProductInfo.ProductName; cartItem.Quantity = count; cartItem.SKU = model.ProductSkus[0].SKU; cartItem.ProductId = model.ProductInfo.ProductId; cartItem.UserId = userId; List<Maticsoft.Model.Shop.Products.SKUItem> sKUItemsBySkuId = this.skuBll.GetSKUItemsBySkuId(modelBySKU.SkuId); if ((sKUItemsBySkuId != null) && (sKUItemsBySkuId.Count > 0)) { cartItem.SkuValues = new string[sKUItemsBySkuId.Count]; int index = 0; sKUItemsBySkuId.ForEach(delegate (Maticsoft.Model.Shop.Products.SKUItem xx) { cartItem.SkuValues[index++] = xx.ValueStr; if (!string.IsNullOrWhiteSpace(xx.ImageUrl)) { cartItem.SkuImageUrl = xx.ImageUrl; } }); } cartItem.ThumbnailsUrl = model.ProductInfo.ThumbnailUrl1; cartItem.CostPrice = model.ProductSkus[0].CostPrice.HasValue ? model.ProductSkus[0].CostPrice.Value : 0M; cartItem.MarketPrice = model.ProductInfo.MarketPrice.HasValue ? model.ProductInfo.MarketPrice.Value : 0M; cartItem.SellPrice = cartItem.AdjustedPrice = model.ProductSkus[0].SalePrice; cartItem.Weight = model.ProductSkus[0].Weight.HasValue ? model.ProductSkus[0].Weight.Value : 0; helper.AddItem(cartItem); ShoppingCartInfo shoppingCart = helper.GetShoppingCart(); ((dynamic) base.ViewBag).TotalPrice = shoppingCart.TotalSellPrice; ((dynamic) base.ViewBag).ItemCount = shoppingCart.Quantity; } ((dynamic) base.ViewBag).Title = "添加购物车"; return base.RedirectToAction("CartInfo"); }
public ActionResult GetCartCount() { int userId = (base.currentUser == null) ? -1 : base.currentUser.UserID; ShoppingCartHelper helper = new ShoppingCartHelper(userId); return base.Content(helper.GetShoppingCart().Quantity.ToString(CultureInfo.InvariantCulture)); }
private ShoppingCartInfo GetShoppingCart(HttpContext context, User userBuyer, out ShoppingCartHelper shoppingCartHelper) { ShoppingCartInfo cartInfo = null; string str = context.Request.Form["SkuInfos"]; if (string.IsNullOrWhiteSpace(str)) { shoppingCartHelper = new ShoppingCartHelper(userBuyer.UserID); cartInfo = shoppingCartHelper.GetShoppingCart(); } else { JsonArray array; shoppingCartHelper = null; try { array = JsonConvert.Import<JsonArray>(str); } catch (Exception) { throw; } if ((array == null) || (array.Length < 1)) { return null; } JsonObject obj2 = array.GetObject(0); string sku = obj2["SKU"].ToString(); int num = Globals.SafeInt(obj2["Count"].ToString(), 1); int id = Globals.SafeInt(obj2["ProSales"].ToString(), -1); Maticsoft.Model.Shop.Products.SKUInfo modelBySKU = this._skuInfoManage.GetModelBySKU(sku); if (modelBySKU == null) { return null; } Maticsoft.Model.Shop.Products.ProductInfo model = this._productInfoManage.GetModel(modelBySKU.ProductId); if (model == null) { return null; } ShoppingCartItem itemInfo = new ShoppingCartItem { MarketPrice = model.MarketPrice.HasValue ? model.MarketPrice.Value : 0M, Name = model.ProductName, Quantity = num, SellPrice = modelBySKU.SalePrice, AdjustedPrice = modelBySKU.SalePrice, SKU = modelBySKU.SKU, ProductId = modelBySKU.ProductId, UserId = userBuyer.UserID }; if (id > 0) { Maticsoft.Model.Shop.Products.ProductInfo proSaleModel = this._productInfoManage.GetProSaleModel(id); if (proSaleModel == null) { return null; } if (DateTime.Now > proSaleModel.ProSalesEndDate) { throw new ArgumentNullException("活动已过期"); } itemInfo.AdjustedPrice = proSaleModel.ProSalesPrice; } List<Maticsoft.Model.Shop.Products.SKUItem> sKUItemsBySkuId = this._skuInfoManage.GetSKUItemsBySkuId(modelBySKU.SkuId); if ((sKUItemsBySkuId != null) && (sKUItemsBySkuId.Count > 0)) { itemInfo.SkuValues = new string[sKUItemsBySkuId.Count]; int index = 0; sKUItemsBySkuId.ForEach(delegate (Maticsoft.Model.Shop.Products.SKUItem xx) { itemInfo.SkuValues[index++] = xx.ValueStr; if (!string.IsNullOrWhiteSpace(xx.ImageUrl)) { itemInfo.SkuImageUrl = xx.ImageUrl; } }); } itemInfo.ThumbnailsUrl = model.ThumbnailUrl1; itemInfo.CostPrice = modelBySKU.CostPrice.HasValue ? modelBySKU.CostPrice.Value : 0M; itemInfo.Weight = modelBySKU.Weight.HasValue ? modelBySKU.Weight.Value : 0; Maticsoft.Model.Shop.Supplier.SupplierInfo modelByCache = new Maticsoft.BLL.Shop.Supplier.SupplierInfo().GetModelByCache(model.SupplierId); if (modelByCache != null) { itemInfo.SupplierId = new int?(modelByCache.SupplierId); itemInfo.SupplierName = modelByCache.Name; } cartInfo = new ShoppingCartInfo(); cartInfo.Items.Add(itemInfo); } try { cartInfo = new SalesRuleProduct().GetWholeSale(cartInfo); } catch (Exception) { return null; } return cartInfo; }