void App_Startup(object sender, StartupEventArgs e) { var dialogsManager = new WPFDialogsManager(); _excelMerger = new ExcelInteropExcelToPdfConverter(); var mainWindowViewModel = new MainWindowViewModel( dialogsManager, _excelMerger); var window = new MainWindow(mainWindowViewModel); window.Show(); }
public MainWindowViewModel( IDialogsManager dialogsManager, IExcelToPdfConverter excelToPdfConverter) { FilesToConvertToPdf = new ObservableCollection <ExcelFileInfos>(); _dialogManager = dialogsManager ?? throw new ArgumentNullException(nameof(dialogsManager)); _excelToPdfConverter = excelToPdfConverter ?? throw new ArgumentNullException(nameof(excelToPdfConverter)); SelectFilesToConvertToPdfCommand = new RelayCommand( () => { var filesToConvertToPdf = _dialogManager.SelectExcelFilesToConvertToPdf(); if (filesToConvertToPdf == null) { return; } foreach (var filePath in filesToConvertToPdf) { FilesToConvertToPdf.Add(new ExcelFileInfos(filePath)); } }, () => ProgressBarVisibility != Visibility.Visible); ConvertToPdfCommand = new RelayCommand( async() => { try { ProgressBarVisibility = Visibility.Visible; await _excelToPdfConverter.ConvertToPdf(FilesToConvertToPdf); _dialogManager.ShowInformation("Operation completed"); } catch (Exception ex) { _dialogManager.ShowError(ex.Message); } finally { ProgressBarVisibility = Visibility.Hidden; } }, () => FilesToConvertToPdf.Any() && ProgressBarVisibility != Visibility.Visible); RestartCommand = new RelayCommand( () => { FilesToConvertToPdf.Clear(); ProgressBarVisibility = Visibility.Collapsed; }, () => FilesToConvertToPdf.Any() && ProgressBarVisibility != Visibility.Visible); }