private async Task UpdateProductQuantityAsync(ReverbProductParam listing)
        {
            var data        = new[] { listing.Slug };
            var jsonContent = String.Format(@"has_inventory={0}&inventory={1}", listing.HasInventory, listing.Inventory);

            await ActionPolicies.SubmitAsync.Do(async() =>
            {
                try
                {
                    await this._webRequestServices.PutFormatDataAsync(ReverbCommand.UpdateProduct, data, jsonContent);
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("Precondition Failed"))
                    {
                        ReverbLogger.Log.Error(ex, PreconditionFailedMessage, listing.Slug, listing.Sku, listing.Inventory);
                    }
                    else if (ex.Message.Contains("(404) Not Found"))
                    {
                        ReverbLogger.Log.Error(ex, NotFoundMessage, listing.Slug, listing.Sku, listing.Inventory);
                    }
                    else if (ex.Message.Contains("Unprocessable Entity"))
                    {
                        ReverbLogger.Log.Error(ex, UnprocessableEntityMessage, listing.Slug, listing.Sku, listing.Inventory);
                    }
                    else
                    {
                        throw ex;
                    }
                }

                //API requirement
                await this.CreateApiDelay();
            });
        }
        public async Task UpdateProductsAsync(IEnumerable <ReverbProductEntity> products)
        {
            foreach (var item in products)
            {
                ReverbProductParam param = new ReverbProductParam()
                {
                    Sku          = item.Sku,
                    Slug         = item.Slug,
                    HasInventory = item.HasInventory,
                    Inventory    = item.Inventory
                };

                await this.UpdateProductQuantityAsync(param);
            }
        }
        public void UpdateProducts(IEnumerable <ReverbProductEntity> products)
        {
            foreach (var item in products)
            {
                ReverbProductParam param = new ReverbProductParam()
                {
                    Sku          = item.Sku,
                    Slug         = item.Slug,
                    HasInventory = item.HasInventory,
                    Inventory    = item.Inventory
                };

                this.UpdateProductQuantity(param);
            }
        }