public async Task <string> AddPrinter() { var newPrinterName = _printerHelper.CreateValidPrinterName("PDFCreator"); var questionText = Translation.EnterPrintername; newPrinterName = await RequestPrinternameFromUser(questionText, newPrinterName); if (newPrinterName == null) { return(null); } while (!_printerHelper.IsValidPrinterName(newPrinterName)) { questionText = Translation.GetPrinterAlreadyInstalledMessage(newPrinterName); newPrinterName = _printerHelper.CreateValidPrinterName(newPrinterName); newPrinterName = await RequestPrinternameFromUser(questionText, newPrinterName); if (newPrinterName == null) { return(null); } } if (_uacAssistant.AddPrinter(newPrinterName)) { if (CheckInstalledPrinter(newPrinterName)) { return(newPrinterName); } } const string caption = "PDFCreator"; var message = Translation.GetCouldNotInstallPrinterMessage(newPrinterName); await ShowMessage(message, caption, MessageOptions.OK, MessageIcon.Error); return(null); }