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