/// <summary> /// 从传入的商品参数创建一个购物车对象 /// </summary> /// <param name="productSysNo">商品编号,多个商品编号用逗号(,)隔开</param> /// <param name="quantity">商品数量,多个购买数量用逗号(,)隔开</param> /// <returns></returns> public static ShoppingCart GetShoppingCartFromParam(string productSysNo, string quantity) { if (String.IsNullOrWhiteSpace(productSysNo) || String.IsNullOrWhiteSpace(quantity)) { return(null); } String[] productSysnoArray = productSysNo.Split(new char[] { ',' }); String[] quantityArray = quantity.Split(new char[] { ',' }); if (productSysnoArray.Length != quantityArray.Length) { return(null); } int temp; if (productSysnoArray.Any(x => !int.TryParse(x, out temp) || temp <= 0) || quantityArray.Any(x => !int.TryParse(x, out temp) || temp <= 0)) { return(null); } ShoppingCart shoppingCart = ShoppingStorageManager.GetShoppingCartFromCreateNew(); shoppingCart.ShoppingItemGroupList = new List <ShoppingItemGroup>(); for (int i = 0; i < productSysnoArray.Length; i++) { var psysno = int.Parse(productSysnoArray[i]); var qty = int.Parse(quantityArray[i]); if (!shoppingCart.ShoppingItemGroupList.Exists(group => { if (group.ShoppingItemList == null) { return(false); } return(group.ShoppingItemList.Exists(x => { if (x.ProductSysNo == psysno) { group.Quantity += qty; return true; } return false; })); })) { shoppingCart.ShoppingItemGroupList.Add(new ShoppingItemGroup() { Quantity = qty, ShoppingItemList = new List <ShoppingItem>() { new ShoppingItem() { ProductSysNo = psysno, UnitQuantity = 1 } } }); } } return(shoppingCart); }