private async Task LoadRepositoryAsync(CancellationToken cancellationToken) { try { var repositoryViewModel = new RepositoryViewModel(_connection, Repository); await repositoryViewModel.LoadAsync(cancellationToken); DispatcherHelper.CheckBeginInvokeOnUI(() => Repositories.Add(repositoryViewModel)); } catch (Exception ex) { MessageBox.Show(ex.Message, "Load repository"); } }
private async Task LoadInnerAsync(CancellationToken cancellationToken) { try { var repositories = await _connection.Client.Catalog.GetCatalogAsync(new CatalogParameters(), cancellationToken); _canLoadCatalog = true; var repositoryViewModels = new List <RepositoryViewModel>(repositories.Repositories.Length); foreach (var repository in repositories.Repositories.OrderBy(r => r)) { cancellationToken.ThrowIfCancellationRequested(); try { var repositoryViewModel = new RepositoryViewModel(_connection, repository); repositoryViewModels.Add(repositoryViewModel); await repositoryViewModel.LoadAsync(cancellationToken); } catch (Exception ex) { Trace.WriteLine(ex.Message); } } //Do this on the UI thread DispatcherHelper.CheckBeginInvokeOnUI(() => Repositories = new ObservableCollection <RepositoryViewModel>(repositoryViewModels)); } catch (Exception ex) { Trace.WriteLine($"Unable to load catalog: {ex.Message}"); } }