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); }