public async Task <ReplyPSPMessage> AddItemAsync(int customerId, int productId, int quantity) { var PSPMessage = new ReplyPSPMessage(); var productItem = await _productContext.GetProductItemAsync(productId); if (productItem != null) { if (productItem.Quantity < quantity) { PSPMessage.command = "AddItem"; PSPMessage.status = 500; PSPMessage.message = String.Format("Product Item:{0} is out of Stock", productId); PSPMessage.data = new object(); return(PSPMessage); } var basketItem = new BasketItem() { ProductId = productItem.ProductId, ProductName = productItem.ProductName, UnitPrice = productItem.UnitPrice, Quantity = quantity }; var(message, status) = await _basketContext.AddItemAsync(customerId, basketItem); if (status == 200) { productItem.Quantity -= quantity; } PSPMessage.command = "AddItem"; PSPMessage.status = status; PSPMessage.message = message; PSPMessage.data = new object(); } else { PSPMessage.command = "AddItem"; PSPMessage.status = 500; PSPMessage.message = String.Format("Product Item:{0} does not exist in Database", productId); PSPMessage.data = new object(); return(PSPMessage); } return(PSPMessage); }