private async Task LoadAllAsync(HttpQueryDispatcher dispatcher, HttpQueryDispatcher.Next next, ListUserProperty listAll) { models.Clear(); if (!serverConnection.IsAvailable) { var items = await localStorage.LoadAsync(); if (items != null) { models.AddRange(items); return; } } if (dispatcher != null) { await dispatcher.QueryAsync(listAll); } else { models.AddRange((List <UserPropertyModel>) await next(listAll)); await localStorage.SaveAsync(models); } }
private async Task EnsureListAsync(HttpQueryDispatcher dispatcher, HttpQueryDispatcher.Next next, ListUserProperty listAll) { if (models.Count == 0) { if (listAllTask == null) { listAllTask = LoadAllAsync(dispatcher, next, listAll); } try { await listAllTask; } finally { listAllTask = null; } } }