public ActionResult CartList(string viewName = "_CartList")
 {
     int userId = (base.currentUser == null) ? -1 : base.currentUser.UserID;
     ShoppingCartInfo shoppingCart = new ShoppingCartHelper(userId).GetShoppingCart();
     try
     {
         shoppingCart = new SalesRuleProduct().GetWholeSale(shoppingCart);
     }
     catch (Exception exception)
     {
         throw exception;
     }
     return base.View(viewName, shoppingCart);
 }
Пример #2
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;
 }
Пример #3
0
 public PartialViewResult WholeSale(int ProductId, string viewName = "_WholeSale")
 {
     SalesModel salesRuleByCache = new SalesModel();
     if (base.currentUser != null)
     {
         salesRuleByCache = new SalesRuleProduct().GetSalesRuleByCache((long) ProductId, base.currentUser.UserID);
     }
     return this.PartialView(viewName, salesRuleByCache);
 }
Пример #4
0
 public ActionResult SubmitOrder(string sku, int count = 1, int shippingTypeId = -1, int c = -1, string viewName = "SubmitOrder")
 {
     ShoppingCartInfo cartInfo = new ShoppingCartInfo();
     if (string.IsNullOrWhiteSpace(sku))
     {
         int userId = (base.currentUser == null) ? -1 : base.currentUser.UserID;
         cartInfo = new ShoppingCartHelper(userId).GetShoppingCart();
     }
     else
     {
         Maticsoft.BLL.Shop.Products.SKUInfo info2 = new Maticsoft.BLL.Shop.Products.SKUInfo();
         Maticsoft.BLL.Shop.Products.ProductInfo info3 = new Maticsoft.BLL.Shop.Products.ProductInfo();
         Maticsoft.Model.Shop.Products.SKUInfo modelBySKU = info2.GetModelBySKU(sku);
         if (modelBySKU == null)
         {
             return new RedirectResult("/Error");
         }
         Maticsoft.Model.Shop.Products.ProductInfo productInfo = info3.GetModel(modelBySKU.ProductId);
         if (productInfo == null)
         {
             return new RedirectResult("/Error");
         }
         Maticsoft.Model.Shop.Products.ProductInfo proSaleInfo = null;
         if (c > 0)
         {
             proSaleInfo = info3.GetProSaleModel(c);
             if (proSaleInfo == null)
             {
                 return new RedirectResult("/Error");
             }
             if (DateTime.Now > proSaleInfo.ProSalesEndDate)
             {
                 return base.RedirectToAction("ProSaleDetail", "Product", new { area = "Shop", id = c });
             }
         }
         cartInfo = this.GetCartInfo4SKU(productInfo, modelBySKU, count, proSaleInfo);
     }
     if (cartInfo.Items.Count < 1)
     {
         return (ActionResult) this.Redirect(((dynamic) base.ViewBag).BasePath + "ShoppingCart/CartInfo");
     }
     try
     {
         cartInfo = new SalesRuleProduct().GetWholeSale(cartInfo);
     }
     catch (Exception exception)
     {
         throw exception;
     }
     Maticsoft.Model.Shop.Shipping.ShippingType model = this._shippingTypeManage.GetModel(shippingTypeId);
     ((dynamic) base.ViewBag).Freight = cartInfo.CalcFreight(model);
     ((dynamic) base.ViewBag).TotalQuantity = cartInfo.Quantity;
     ((dynamic) base.ViewBag).TotalAdjustedPrice = cartInfo.TotalAdjustedPrice;
     ((dynamic) base.ViewBag).ProductTotal = cartInfo.TotalSellPrice;
     ((dynamic) base.ViewBag).TotalPrice = cartInfo.TotalAdjustedPrice + ((dynamic) base.ViewBag).Freight;
     ((dynamic) base.ViewBag).TotalPromPrice = cartInfo.TotalSellPrice - cartInfo.TotalAdjustedPrice;
     ((dynamic) base.ViewBag).Title = "提交订单";
     return base.View(viewName, cartInfo);
 }
Пример #5
0
 public ActionResult SubmitOrder(string sku, int count = 1, string viewName = "SubmitOrder")
 {
     if (!string.IsNullOrWhiteSpace(sku))
     {
         base.Session["SubmitOrder_SKU"] = sku;
         base.Session["SubmitOrder_COUNT"] = count;
     }
     else if (!string.IsNullOrWhiteSpace(base.Session["SubmitOrder_SKU"] as string))
     {
         sku = base.Session["SubmitOrder_SKU"] as string;
         count = Globals.SafeInt(base.Session["SubmitOrder_COUNT"], 1);
     }
     ((dynamic) base.ViewBag).SkuInfo = sku;
     ((dynamic) base.ViewBag).SkuCount = count;
     ShoppingCartInfo cartInfo = new ShoppingCartInfo();
     if (string.IsNullOrWhiteSpace(sku))
     {
         int userId = (base.currentUser == null) ? -1 : base.currentUser.UserID;
         cartInfo = new ShoppingCartHelper(userId).GetShoppingCart();
     }
     else
     {
         Maticsoft.BLL.Shop.Products.SKUInfo info2 = new Maticsoft.BLL.Shop.Products.SKUInfo();
         Maticsoft.BLL.Shop.Products.ProductInfo info3 = new Maticsoft.BLL.Shop.Products.ProductInfo();
         Maticsoft.Model.Shop.Products.SKUInfo modelBySKU = info2.GetModelBySKU(sku);
         if (modelBySKU == null)
         {
             return new RedirectResult("/Error");
         }
         Maticsoft.Model.Shop.Products.ProductInfo info5 = info3.GetModel(modelBySKU.ProductId);
         if (info5 == null)
         {
             return new RedirectResult("/Error");
         }
         ShoppingCartItem cartItem = new ShoppingCartItem {
             MarketPrice = info5.MarketPrice.HasValue ? info5.MarketPrice.Value : 0M,
             Name = info5.ProductName,
             Quantity = count,
             SellPrice = modelBySKU.SalePrice,
             AdjustedPrice = modelBySKU.SalePrice,
             SKU = modelBySKU.SKU,
             ProductId = modelBySKU.ProductId,
             UserId = base.currentUser.UserID
         };
         if (info5.SupplierId > 0)
         {
             Maticsoft.Model.Shop.Supplier.SupplierInfo modelByCache = new Maticsoft.BLL.Shop.Supplier.SupplierInfo().GetModelByCache(info5.SupplierId);
             if (modelByCache != null)
             {
                 cartItem.SupplierId = new int?(modelByCache.SupplierId);
                 cartItem.SupplierName = modelByCache.Name;
             }
         }
         List<Maticsoft.Model.Shop.Products.SKUItem> sKUItemsBySkuId = info2.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 = info5.ThumbnailUrl1;
         cartItem.CostPrice = modelBySKU.CostPrice.HasValue ? modelBySKU.CostPrice.Value : 0M;
         cartItem.Weight = modelBySKU.Weight.HasValue ? modelBySKU.Weight.Value : 0;
         cartInfo.Items.Add(cartItem);
     }
     if (cartInfo.Items.Count < 1)
     {
         return (ActionResult) this.Redirect(((dynamic) base.ViewBag).BasePath + "ShoppingCart/CartInfo");
     }
     try
     {
         cartInfo = new SalesRuleProduct().GetWholeSale(cartInfo);
     }
     catch (Exception exception)
     {
         throw exception;
     }
     int modeId = Globals.SafeInt(base.Request.QueryString["shipId"], 0);
     Maticsoft.Model.Shop.Shipping.ShippingType model = this._shippingTypeManage.GetModel(modeId);
     ((dynamic) base.ViewBag).Freight = cartInfo.CalcFreight(model);
     ((dynamic) base.ViewBag).TotalQuantity = cartInfo.Quantity;
     ((dynamic) base.ViewBag).TotalAdjustedPrice = cartInfo.TotalAdjustedPrice;
     ((dynamic) base.ViewBag).TotalPrice = cartInfo.TotalAdjustedPrice + ((dynamic) base.ViewBag).Freight;
     ((dynamic) base.ViewBag).Title = "提交订单";
     return base.View(viewName, cartInfo);
 }