Пример #1
0
        private async Task ExecuteDefaultCategoriesCommand()
        {
            var defaultList = await OneService.GenerateDefaultCategoriesAsync();

            if (Categories == null)
            {
                Categories = new ObservableRangeCollection <CategoryModel>(defaultList);
            }
            else
            {
                Categories.ReplaceRange(defaultList);
            }
        }
Пример #2
0
        private async Task SetCategories()
        {
            var defaultList = await OneService.GenerateDefaultCategoriesAsync();

            if (Categories == null)
            {
                Categories = new ObservableRangeCollection <CategoryModel>(defaultList);
            }
            else
            {
                Categories.ReplaceRange(defaultList);
            }
            ConsoleWrite("Созданы категории сортировки...");
        }
Пример #3
0
        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 = "Завершено";
        }