Example #1
0
        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);
        }