/// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IList <Store> > GetStoresAsync(this IShoppingAPI operations, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetStoresWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='itemData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Item> UpdateListItemAsync(this IShoppingAPI operations, Item itemData = default(Item), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdateListItemWithHttpMessagesAsync(itemData, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='listData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Store> UpdateStoreAsync(this IShoppingAPI operations, string id, Store listData = default(Store), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdateStoreWithHttpMessagesAsync(id, listData, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='listData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ShoppingList> UpdateShoppingListAsync(this IShoppingAPI operations, ShoppingList listData = default(ShoppingList), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdateShoppingListWithHttpMessagesAsync(listData, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='user'>
 /// </param>
 /// <param name='password'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <string> ApiUserLoginByUserGetAsync(this IShoppingAPI operations, string user, string password = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ApiUserLoginByUserGetWithHttpMessagesAsync(user, password, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <bool?> DeleteListItemAsync(this IShoppingAPI operations, int id, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.DeleteListItemWithHttpMessagesAsync(id, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public ShoppingService()
        {
            _client = new ShoppingAPI(new Uri("http://localhost:5000"), new UnsafeCredentials());
            //_client = new ShoppingAPI(new Uri("http://192.168.1.131:5000"), new UnsafeCredentials());

            // Get changes from TinyCache to update collections
            TinyCache.TinyCache.OnUpdate += TinyCache_OnUpdate;
        }
        public ShoppingService()
        {
            var retryHandler = new TinyRetryDelegationHandler();

            retryHandler.RetryOn <Exception>();
            //_client = new ShoppingAPI(new Uri("http://localhost:5000"), new UnsafeCredentials(), new TinyCache.TinyCacheDelegationHandler());
            _client = new ShoppingAPI(new Uri("http://localhost:5000"), new NoClientCredentials(), retryHandler);
        }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='user'>
 /// </param>
 /// <param name='password'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task ApiUserAdduserByUserGetAsync(this IShoppingAPI operations, string user, string password = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.ApiUserAdduserByUserGetWithHttpMessagesAsync(user, password, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='user'>
 /// </param>
 /// <param name='password'>
 /// </param>
 public static void ApiUserAdduserByUserGet(this IShoppingAPI operations, string user, string password = default(string))
 {
     operations.ApiUserAdduserByUserGetAsync(user, password).GetAwaiter().GetResult();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task DeleteStoreAsync(this IShoppingAPI operations, int id, CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.DeleteStoreWithHttpMessagesAsync(id, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 public static void DeleteStore(this IShoppingAPI operations, int id)
 {
     operations.DeleteStoreAsync(id).GetAwaiter().GetResult();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='listData'>
 /// </param>
 public static void UpdateStore(this IShoppingAPI operations, int id, ShoppingList listData = default(ShoppingList))
 {
     operations.UpdateStoreAsync(id, listData).GetAwaiter().GetResult();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='itemData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task UpdateListItemAsync(this IShoppingAPI operations, int id, Item itemData = default(Item), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.UpdateListItemWithHttpMessagesAsync(id, itemData, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 public static bool?DeleteListItem(this IShoppingAPI operations, int id)
 {
     return(operations.DeleteListItemAsync(id).GetAwaiter().GetResult());
 }
 /// <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>
 public static IList <Store> GetStores(this IShoppingAPI operations)
 {
     return(operations.GetStoresAsync().GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='listid'>
 /// </param>
 public static IList <Item> GetListItems(this IShoppingAPI operations, int listid)
 {
     return(operations.GetListItemsAsync(listid).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 public static ShoppingList GetShoppingList(this IShoppingAPI operations, int id)
 {
     return(operations.GetShoppingListAsync(id).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='listData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task UpdateStoreAsync(this IShoppingAPI operations, int id, ShoppingList listData = default(ShoppingList), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.UpdateStoreWithHttpMessagesAsync(id, listData, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='listData'>
 /// </param>
 public static ShoppingList UpdateShoppingList(this IShoppingAPI operations, ShoppingList listData = default(ShoppingList))
 {
     return(operations.UpdateShoppingListAsync(listData).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='user'>
 /// </param>
 /// <param name='password'>
 /// </param>
 public static string ApiUserLoginByUserGet(this IShoppingAPI operations, string user, string password = default(string))
 {
     return(operations.ApiUserLoginByUserGetAsync(user, password).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='listData'>
 /// </param>
 public static void AddStore(this IShoppingAPI operations, ShoppingList listData = default(ShoppingList))
 {
     operations.AddStoreAsync(listData).GetAwaiter().GetResult();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='listData'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task AddShoppingListAsync(this IShoppingAPI operations, ShoppingList listData = default(ShoppingList), CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.AddShoppingListWithHttpMessagesAsync(listData, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='listData'>
 /// </param>
 public static Store UpdateStore(this IShoppingAPI operations, string id, Store listData = default(Store))
 {
     return(operations.UpdateStoreAsync(id, listData).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();
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 public static Store GetStore(this IShoppingAPI operations, int id)
 {
     return(operations.GetStoreAsync(id).GetAwaiter().GetResult());
 }
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='itemData'>
 /// </param>
 public static void AddListItem(this IShoppingAPI operations, Item itemData = default(Item))
 {
     operations.AddListItemAsync(itemData).GetAwaiter().GetResult();
 }