private async Task SyncListItem(IOfflineSupport item, Item i)
        {
            if (i.Deleted)
            {
                try
                {
                    var ret = await _client.DeleteListItemAsync(i.Id);

                    var list = _currentLists.FirstOrDefault(d => d.Id == i.ListId);
                    if (list.Items.Contains(i))
                    {
                        list.Items.Remove(i);
                    }
                    SetSynced(i);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
            else
            {
                var ret = await _client.UpdateListItemAsync(i.ToRest());

                i.Id = ret.Id;
                var list = _currentLists.FirstOrDefault(d => d.Id == i.ListId);
                if (!list.Items.Contains(i))
                {
                    list.Items.Add(i);
                }
                SetSynced(i);
            }
        }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='itemData'>
 /// </param>
 public static Item UpdateListItem(this IShoppingAPI operations, Item itemData = default(Item))
 {
     return(operations.UpdateListItemAsync(itemData).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='itemData'>
 /// </param>
 public static void UpdateListItem(this IShoppingAPI operations, int id, Item itemData = default(Item))
 {
     operations.UpdateListItemAsync(id, itemData).GetAwaiter().GetResult();
 }