public void Run(Pages pages) { if (_isPrintingInProgress) { return; } try { _isPrintingInProgress = true; var selectablePrintersViewModel = new SelectablePrintersViewModel(null, _unitOfWorkFactory, _commonServices, _userPrintingRepository); var selectablePrintersView = new SelectablePrintersView(selectablePrintersViewModel); selectablePrintersView.WindowPosition = WindowPosition.CenterAlways; selectablePrintersView.ShowAll(); var response = selectablePrintersView.Run(); if (response == (int)ResponseType.Ok) { var selectedPrinters = selectablePrintersViewModel.AllPrintersWithSelected .Where(x => x.IsChecked) .Select(x => x.Printer.Name); selectablePrintersView.Destroy(); foreach (var printer in selectedPrinters) { Print(printer, selectablePrintersViewModel.UserPrintSettings, pages, selectablePrintersViewModel.IsWindowsOs); } } else { selectablePrintersView.Destroy(); } } finally { _isPrintingInProgress = false; } }
public SelectablePrintersView(SelectablePrintersViewModel selectablePrintersViewModel) { _selectablePrintersViewModel = selectablePrintersViewModel ?? throw new ArgumentNullException(nameof(selectablePrintersViewModel)); this.Build(); ConfigureDialog(); }