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);
        }