コード例 #1
0
ファイル: AddToCart.cs プロジェクト: n1ckevans/Shop
        public async Task <bool> Do(Request request)
        {
            //service responsibility
            if (!_stockManager.EnoughStock(request.StockId, request.Quantity))
            {
                return(false);
            }

            await _stockManager
            .PutSockOnHold(request.StockId, request.Quantity, _sessionManager.GetId());

            var stock = _stockManager.GetStockWithProduct(request.StockId);

            var cartProduct = new CartProduct()
            {
                ProductId   = stock.Product.Id,
                ProductName = stock.Product.Name,
                StockId     = stock.Id,
                Quantity    = request.Quantity,
                Price       = stock.Product.Price,
                PhotoUrl    = stock.Product.PhotoUrl
            };

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #2
0
ファイル: AddToCart.cs プロジェクト: PolarBear91/First-Shop
        public async Task <bool> Do(Request request)
        {
            if (!_stockManager.EnoughStock(request.StockId, request.Qty))
            {
                return(false);
            }

            await _stockManager
            .PutStockOnHold(request.StockId, request.Qty, _sessionManager.GetId());

            var stock = _stockManager.GetStockWithProduct(request.StockId);

            var cartProduct = new CartProduct()
            {
                ProductId   = stock.ProductId,
                ProductName = stock.Product.Name,
                StockId     = stock.Id,
                Qty         = request.Qty,
                Value       = stock.Product.Value,
            };

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #3
0
ファイル: AddToCart.cs プロジェクト: Astrank/epe
        public async Task <bool> Do(Request request)
        {
            if (!_stockManager.EnoughStock(request.StockId, request.Qty))
            {
                throw new System.Exception("Not enough stock.");
            }

            await _stockManager.PutStockOnHold(request.StockId, request.Qty, _sessionManager.GetId());

            var stock = _stockManager.GetStockWithProduct(request.StockId);

            var cartProduct = new CartProduct()
            {
                ProductId   = stock.ProductId,
                StockId     = stock.Id,
                Qty         = request.Qty,
                ProductName = stock.Product.Name,
                Value       = stock.Product.Value,
                Image       = stock.Product.PrimaryImage,
                Description = stock.Description
            };

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #4
0
ファイル: AddToCart.cs プロジェクト: joffarex/ShopSharp
        public async Task <bool> ExecAsync(CartDto cartDto)
        {
            if (!_stockManager.EnoughStock(cartDto.StockId, cartDto.Quantity))
            {
                return(false);
            }

            var success =
                await _stockManager.PutStockOnHold(cartDto.StockId, cartDto.Quantity, _sessionManager.GetId()) > 0;

            if (!success)
            {
                return(false);
            }

            var stock = _stockManager.GetStockWithProduct(cartDto.StockId);

            if (stock == null)
            {
                return(false);
            }

            var cartProduct = new CartProduct
            {
                ProductId   = stock.ProductId,
                ProductName = stock.Product.Name,
                StockId     = stock.Id,
                Quantity    = cartDto.Quantity,
                Value       = stock.Product.Value
            };

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #5
0
        public async Task <bool> Do(Request request)
        {
            //service responsibility
            if (!_stockManager.EnoughStock(request.StockId, request.Qty))
            {
                return(false);
            }


            await _stockManager
            .PutStockOnHold(request.StockId, request.Qty, _sessionManager.GetId());

            var stock = _stockManager.GetStockWithProduct(request.StockId);

            var cartProduct = new CartProduct()
            {
                ProductId   = stock.ProductId,
                StockId     = stock.Id,
                Qty         = request.Qty,
                ProductName = stock.Product.Name,
                Value       = stock.Product.Value,
            };

            _sessionManager.AddProduct(cartProduct);
            // var cartList = new List<CartProduct>();
            //  var stringObject = _session.GetString("cart");
            //  if (!string.IsNullOrEmpty(stringObject))
            //  {
            //      cartList = JsonConvert.DeserializeObject<List<CartProduct>>(stringObject);
            //  }
            //
            //  if (cartList.Any(x => x.StockId == request.StockId))
            //  {
            //      cartList.Find(x => x.StockId == request.StockId).Qty += request.Qty;
            //  }
            //  else
            //  {
            //      cartList.Add(new CartProduct
            //      {
            //          StockId = request.StockId,
            //          Qty = request.Qty
            //      });
            //  }
            //
            //      stringObject = JsonConvert.SerializeObject(cartList);
            //
            //      _session.SetString("cart", stringObject);
            return(true);
        }