Example #1
0
        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();
        }
Example #2
0
        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);
        }