/// <inheritdoc/>
        public async Task <QBItemResponse <T> > UpdateInventoryItem <T>(InventoryItem item)
        {
            await OpenConnection();

            IMsgSetRequest    request        = CreateRequest();
            IItemInventoryMod itemModRequest = request.AppendItemInventoryModRq();

            itemModRequest.ListID.SetValue(item.ListId);
            itemModRequest.EditSequence.SetValue(item.EditSequence);
            itemModRequest.PurchaseCost.SetValue(item.Cost);
            itemModRequest.SalesPrice.SetValue(item.BasePrice);

            // TODO - parse this to make sure out updates was execute successfully and
            // if so then we want to merge this with our local instance of the item
            IMsgSetResponse queryResponse = await MakeRequestAsync(request).ConfigureAwait(false);

            CloseConnection();

            return(ProcessQueryAsXML <QBItemResponse <T> >(queryResponse, "ItemInventoryModRs"));;
        }