public MainWindow() { InitializeComponent(); AppConfiguration = new AppConfigurationManager(); ProjectProperties = AppConfiguration.GetProjectProperties(); // Добавить кодировку для чтения .xlsx файла. Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // Назначить DataContext. SaveScanTextBox.DataContext = ProjectProperties; DataContext = ProjectProperties; }
// Назначить пути для работы с файлами. private async void LoadProjectButton_Click(object sender, RoutedEventArgs e) { var openFileWindow = new OpenDataFileWindow(ProjectProperties); if (openFileWindow.ShowDialog() == true) { LoadProgressBar.IsIndeterminate = true; StatusLabel.Content = "Идет импорт проекта..."; ProjectProperties = openFileWindow.ProjectProperties; var config = new AppConfigurationManager(); config.SaveProperties(ProjectProperties); try { ExcelService = new ExcelService(ProjectProperties); var excelListTask = ExcelService.GetListAsync(); FindScanService = new FindScanService(ProjectProperties); var resultTask = FindScanService.GetMatchingResultFromExcelAsync(await excelListTask); var resultModel = (await resultTask).Adapt <IEnumerable <MatchingResultViewModel> >(); LoadProject(resultModel); resultTask.Wait(); LoadProgressBar.IsIndeterminate = false; StatusLabel.Content = "Перечень загружен"; SetNewWindowName("Новый проект"); } catch (IOException ex) { LoadProgressBar.IsIndeterminate = false; MessageBox.Show($"Ошибка при открытии файла, файл занят другим процессом. Попробуйте закрыть Excel.\n{ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { LoadProgressBar.IsIndeterminate = false; MessageBox.Show($"Ошибка при загрузке данных {ex.Message}"); } } }