private async Task ExecuteDefaultCategoriesCommand() { var defaultList = await OneService.GenerateDefaultCategoriesAsync(); if (Categories == null) { Categories = new ObservableRangeCollection <CategoryModel>(defaultList); } else { Categories.ReplaceRange(defaultList); } }
private async Task SetCategories() { var defaultList = await OneService.GenerateDefaultCategoriesAsync(); if (Categories == null) { Categories = new ObservableRangeCollection <CategoryModel>(defaultList); } else { Categories.ReplaceRange(defaultList); } ConsoleWrite("Созданы категории сортировки..."); }
private async Task ExecuteSerializeTableCommand() { if (!File.Exists(FilePath)) { ConsoleWrite("Ошибка открытия файла", LogTag.Error); return; } IsBusy = true; ProgressLabel = "Выполняется..."; tokenSource = new CancellationTokenSource(); token = tokenSource.Token; await Task.Run(() => { var dt = OneService.GenerateTableFromExcel(FilePath); if (dt == null) { lock (SyncLock) { ConsoleWrite("Ошибка открытия файла", LogTag.Error); return; } } Progress = 30; IList <SymbolTableItemModel> items = dt.AsEnumerable() .Select(row => new SymbolTableItemModel { SignalName = row.Field <string>("SignalName"), SignalAdress = row.Field <string>("SignalAdress"), SignalDataType = row.Field <string>("SignalDataType"), SignalComment = row.Field <string>("SignalComment") }) .ToList(); SymbolTable = new SymbolTableModel(items); lock (SyncLock) { ConsoleWrite("Таблица прочитана"); } if (token.IsCancellationRequested) { lock (SyncLock) { ConsoleWrite("Операция отменена"); } return; } SymbolTable.AnalyseAndSetTags(); SymbolTable.SortTable(); lock (SyncLock) { ConsoleWrite("Анализ таблицы выполнен"); } Progress = 50; ExcelDataWriter.BackupFile(FilePath); var fi = new FileInfo(FilePath); var dest = Path.Combine(RootDirectory, "result_" + fi.Name); bool isOk = ExcelDataWriter.WriteExcelFromArray(dest, SymbolTable.GetSymbolsArray(), "SymbolTable", token); Progress = 100; var s = isOk ? "Адаптированная таблица сохранена" : "Ошибка записи файла"; lock (SyncLock) { ConsoleWrite(s); } }, token).ConfigureAwait(false); IsBusy = false; ProgressLabel = "Завершено"; }