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

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

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

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #2
0
ファイル: AddToCart.cs プロジェクト: KabanEOS/Bazarek-ASP.NET
        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,
                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
ファイル: AddToCart.cs プロジェクト: kiryl-labada/e-shop
        public async Task <bool> Do(Request request)
        {
            if (request.Qty <= 0)
            {
                return(false);
            }

            if (!await _stockManager.EnoughStock(request.StockId, request.Qty))
            {
                return(false);
            }

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

            var stock = await _stockManager.GetStock(request.StockId);

            var product = await _productManager.GetProductById(stock.ProductId);

            var images = await _productImageManager.GetImages(stock.ProductId);

            var cartProduct = new CartProduct
            {
                ProductId   = stock.ProductId,
                ProductName = product.Name,
                StockId     = stock.Id,
                Images      = images.Select(x => x.Path).ToList(),
                Qty         = request.Qty,
                Value       = product.Value
            };

            _sessionManager.AddProduct(cartProduct);

            return(true);
        }
コード例 #6
0
        public async Task <bool> Do(Request request)
        {
            if (!_stockManager.EnoughStock(request.StockID, request.Qty))
            {
                return(false);
            }
            if (request.Qty <= 0)
            {
                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);

            return(true);
        }
コード例 #7
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);
        }