Beispiel #1
0
        //添加购物车
        public bool addToCart(string buyerid, string commodityid, int number)
        {
            AddShoppingCart cart = _context.AddShoppingCarts.Where(x => x.BuyerId == buyerid && x.CommodityId == commodityid).FirstOrDefault();

            if (cart == null)
            {
                cart = new AddShoppingCart {
                    BuyerId = buyerid, CommodityId = commodityid, Quantity = number, DateCreated = DateTime.Now
                };
                _context.AddShoppingCarts.Add(cart);
            }

            else
            {
                cart.Quantity += number;
                _context.AddShoppingCarts.Update(cart);
            }

            if (_context.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
        // 从购物车中删除
        public bool RemoveFromCart(string buyerid, string commodityid)
        {
            AddShoppingCart cart = _context.AddShoppingCarts.Where(x => x.BuyerId == buyerid && x.CommodityId == commodityid).FirstOrDefault();

            if (cart != null)
            {
                _context.AddShoppingCarts.Remove(cart);

                if (_context.SaveChanges() > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
 // 从购物车页面创建订单
 public bool CreateOrderFromChart(string buyerId, List <Good> cartCommodityList, string receivedId, decimal price)
 {
     if (buyerId == "" || cartCommodityList.Count == 0 || receivedId == "" || price == 0)
     {
         return(false);
     }
     else
     {
         List <Commodity> commodityList = new List <Commodity>();
         List <Shop>      shopList      = new List <Shop>();
         Global.GOrderID.Clear();
         CreateIdCount create   = new CreateIdCount(_context);
         decimal       oldPrice = 0;
         foreach (Good cartCommodity in cartCommodityList)
         {
             Commodity newCommodity = _context.Commodities.FirstOrDefault(c => c.CommodityId == cartCommodity.ID);
             Shop      newShop      = _context.Shops.FirstOrDefault(s => s.Name == cartCommodity.shop);
             oldPrice = oldPrice + ((int)newCommodity.Price) * cartCommodity.Soldnum;
             commodityList.Add(newCommodity);
             if (shopList.Any(s => s.ShopId == newShop.ShopId) == false)
             {
                 shopList.Add(_context.Shops.FirstOrDefault(s => s.ShopId == newShop.ShopId));
             }
             AddShoppingCart scCommodity = _context.AddShoppingCarts.FirstOrDefault(a => a.CommodityId == cartCommodity.ID && a.BuyerId == buyerId);
             _context.AddShoppingCarts.Remove(scCommodity);
         }
         List <BuyerCoupon> couponList = _context.BuyerCoupons.Where(c => c.BuyerId == buyerId).ToList();
         foreach (BuyerCoupon newBuyerCoupon in couponList)
         {
             Coupon newCoupon = _context.Coupons.FirstOrDefault(c => c.CouponId == newBuyerCoupon.CouponId);
             if (newCoupon.Threshold <= oldPrice && newCoupon.Discount1 == (oldPrice - price))
             {
                 newBuyerCoupon.Amount--;
                 if (newBuyerCoupon.Amount == 0)
                 {
                     _context.BuyerCoupons.Remove(newBuyerCoupon);
                 }
                 else
                 {
                     _context.BuyerCoupons.Update(newBuyerCoupon);
                 }
             }
         }
         decimal discountNumber = price / shopList.Count;
         foreach (Shop newShop in shopList)
         {
             Order  newOrder   = new Order();
             string newOrderId = create.GetOrderCount();
             newOrder.OrdersId = newOrderId;
             Global.GOrderID.Add(newOrderId);
             newOrder.BuyerId    = buyerId;
             newOrder.ShopId     = newShop.ShopId;
             newOrder.OrdersDate = DateTime.Now;
             newOrder.Status     = COrders.ToBePay;
             newOrder.ReceivedId = receivedId;
             decimal amount = 0;
             foreach (Commodity newCommodity in commodityList)
             {
                 Good            newcart            = cartCommodityList.FirstOrDefault(c => c.ID == newCommodity.CommodityId);
                 OrdersCommodity newOrdersCommodity = new OrdersCommodity();
                 newOrdersCommodity.OrdersId    = newOrder.OrdersId;
                 newOrdersCommodity.CommodityId = newCommodity.CommodityId;
                 newOrdersCommodity.Status      = COrders.ToBePay;
                 newOrdersCommodity.Amount      = newcart.Soldnum;
                 _context.OrdersCommodities.Add(newOrdersCommodity);
                 if (newCommodity.ShopId == newShop.ShopId)
                 {
                     amount = amount + ((int)newCommodity.Price) * newcart.Soldnum;
                 }
             }
             amount = amount - (oldPrice - price) / discountNumber;
             newOrder.Orderamount = amount;
             _context.Orders.Add(newOrder);
         }
         if (_context.SaveChanges() > 0)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }