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