private async Task LoadProjectsAsync() { statusModel.UpdateStatus("Loading projects .."); var config = await configurationService.GetAsync(); var rootPath = config.RootDirectory; await delayService.DelayAsync(); // stupid delay to see something happening ;-) var items = CreateProjectViewModelsFromDirectory(rootPath).ToList(); foreach (var item in items) { Projects.Add(item); await delayService.DelayAsync(); // stupid delay to see something happening ;-) } switch (items.Count) { case 0: statusModel.UpdateStatus("Could not load any projects"); break; case 1: statusModel.UpdateStatus("One project loaded."); break; default: statusModel.UpdateStatus($"{items.Count} Projects loaded."); break; } }
public async Task DelayAsync(CancellationToken ct = default(CancellationToken)) { using (statusModel.NotifyDelay()) { await decoratee.DelayAsync(ct).ConfigureAwait(false); } }
public async Task ExecuteAsync(TCommand command, IProgress <ProgressData> progress = null, CancellationToken ct = default(CancellationToken)) { var config = await GetConfigurationAsync(); if (config != null && config.DelayExecution.Enabled) { await delayService.DelayAsync(ct).ConfigureAwait(false); } await decoratee.ExecuteAsync(command, progress, ct).ConfigureAwait(false); }
public ApplicationSettingsViewModel([NotNull] IQueryProcessor queryProcessor, [NotNull] IDelayService delayService) { Guard.NotNull(queryProcessor, nameof(queryProcessor)); Guard.NotNull(delayService, nameof(delayService)); SearchProviderNames = new ObservableCollection <string>(); getSearchProvidersCommand = new CapturingExceptionAsyncCommand(async() => { if (entity?.DelayExecution.Enabled ?? true) { await delayService.DelayAsync(); } var result = await queryProcessor.ExecuteQueryAsync(GetAllSearchProvidersQuery.Instance); var tmp = SearchProviderName; SearchProviderNames.Clear(); foreach (var item in result.OrderBy(x => x.Priority)) { SearchProviderNames.Add(item.Name); } if (SearchProviderNames.Contains(tmp)) { SearchProviderName = tmp; return; } SearchProviderName = result .OrderBy(x => x.Priority) .FirstOrDefault() ?.Name; }); VersionControlProviderNames = new ObservableCollection <string>(); getVersionControlProvidersCommand = new CapturingExceptionAsyncCommand(async() => { if (entity?.DelayExecution.Enabled ?? true) { await delayService.DelayAsync(); } var result = await queryProcessor.ExecuteQueryAsync(GetAllVersionControlProvidersQuery.Instance); var tmp = VersionControlProviderName; VersionControlProviderNames.Clear(); foreach (var item in result.OrderBy(x => x.Priority)) { VersionControlProviderNames.Add(item.Name); } if (VersionControlProviderNames.Contains(tmp)) { VersionControlProviderName = tmp; return; } VersionControlProviderName = result .OrderBy(x => x.Priority) .FirstOrDefault() ?.Name; }); }