示例#1
0
        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;
            }
        }
示例#2
0
 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);
        }
示例#4
0
        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;
            });
        }