private async Task ExecuteGenerateSourcesCommand() { IsBusy = true; tokenSource = new CancellationTokenSource(); token = tokenSource.Token; var sources = new SourceGenerator(Categories); ConsoleWrite("Выгрузка листа блоков данных..."); var resultFile = Path.Combine(RootDirectory, "sources.xlsx"); await Task.Run(() => { ExcelDataWriter.WriteExcelFromArray(resultFile, sources.PrintDBlistToArray(), "DB_list", token); }, token).ConfigureAwait(false); Progress = 40; ConsoleWrite("Старт генерации source-файлов..."); await sources.SetPeripheryFields(token); await sources.PrintAllSourcesToFiles(RootDirectory, token); Progress = 90; ConsoleWrite("Генерация source-файлов завершена"); Categories.ReplaceRange(sources.Categories); Progress = 0; IsBusy = false; ConsoleWrite("Выполнено! Генерация завершена, основная структура сигналов обновлена"); }