void Export(object parameter) { if (!IsValid) { ShowValidationDetailsMessage(); return; } try { var dlg = new SaveFileDialog(); dlg.AddExtension = true; dlg.DefaultExt = "txt"; dlg.Filter = "(Текстовые файлы)|*.txt"; dlg.OverwritePrompt = true; var res = dlg.ShowDialog(); if (res.HasValue && res.Value) { var fileName = dlg.FileName; ProcessesFileLoader.ExportProcesses(Processes.ToList(), fileName); } } catch (Exception ex) { var message = "Попытка экспорта в файл завершилась ошибкой:"; var currentEx = ex; while (currentEx != null) { message = $"{message}\n{ex.Message}"; currentEx = ex.InnerException; } MessageBox.Show(message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }
void Import(object parameter) { try { var dlg = new OpenFileDialog(); dlg.AddExtension = true; dlg.DefaultExt = "txt"; dlg.Filter = "(Текстовые файлы)|*.txt"; dlg.Multiselect = false; var res = dlg.ShowDialog(); if (res.HasValue && res.Value) { var fileName = dlg.FileName; var processes = ProcessesFileLoader.ImportProcesses(fileName); Processes.Clear(); foreach (var process in processes) { Processes.Add(process); } } } catch (Exception ex) { var message = "Попытка импорта из файла завершилась ошибкой:"; var currentEx = ex; while (currentEx != null) { message = $"{message}\n{ex.Message}"; currentEx = ex.InnerException; } MessageBox.Show(message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }