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));
 }
Esempio n. 3
0
 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;
 }