public static PassportInfo PromptPassportRegistration(IWin32Window owner, string passportPDFAppID, string originalValidPassportKey = null) { using (frmRegisterPassport frmRegisterPassport = new frmRegisterPassport()) { if (originalValidPassportKey != null) { frmRegisterPassport.PassportKey = originalValidPassportKey; } PassportInfo passportInfo = null; // Prompt user to register a new passport number, loop until he specifies a new valid passport number or close the prompted window while (passportInfo == null) { DialogResult dialogResult = frmRegisterPassport.ShowDialog(owner); if (dialogResult == DialogResult.No) { MessageBox.Show(FrameworkGlobals.MessagesLocalizer.GetString("message_must_specify_passport_key", FrameworkGlobals.ApplicationLanguage), FrameworkGlobals.MessagesLocalizer.GetString("caption_warning", FrameworkGlobals.ApplicationLanguage), MessageBoxButtons.OK, MessageBoxIcon.Warning); if (originalValidPassportKey != null) { frmRegisterPassport.PassportKey = originalValidPassportKey; } } else if (dialogResult == DialogResult.OK) { // A new passport number has been specified, check whether it is a valid one by fetching its info from the distant server if (frmFetchingInfoFromServer.TryFetchPassportInfoFromPassportPDF(frmRegisterPassport.PassportKey, out passportInfo, owner) && passportInfo == null) { MessageBox.Show(FrameworkGlobals.MessagesLocalizer.GetString("message_invalid_passport_id", FrameworkGlobals.ApplicationLanguage), FrameworkGlobals.MessagesLocalizer.GetString("caption_warning", FrameworkGlobals.ApplicationLanguage), MessageBoxButtons.OK, MessageBoxIcon.Warning); if (originalValidPassportKey != null) { frmRegisterPassport.PassportKey = originalValidPassportKey; } } } else if (dialogResult == DialogResult.Cancel) { return(null); } } // Register new passport number in the registry if (!LicensingUtilities.RegisterPassportIdInRegister(passportPDFAppID, frmRegisterPassport.PassportKey)) { DialogUtilities.ShowErrorMessage(FrameworkGlobals.MessagesLocalizer.GetString("message_passport_key_registering_failure", FrameworkGlobals.ApplicationLanguage), FrameworkGlobals.MessagesLocalizer.GetString("caption_error", FrameworkGlobals.ApplicationLanguage)); } return(passportInfo); } }
private bool EnsurePassportRegistrationAndRetrievePassportInfo() { if (!LicensingUtilities.IsPassportKeyRegistered(_appInfo.AppID) || // No passport number found in registry !frmFetchingInfoFromServer.TryFetchPassportInfoFromPassportPDF(LicensingUtilities.GetRegisterPassportId(_appInfo.AppID), out PassportInfo passportInfo, _view.WindowInstance) || // Server failed to be reached passportInfo == null) // No passport corresponding to the passport number could be fetched { if ((passportInfo = frmRegisterPassport.PromptPassportRegistration(_view.WindowInstance, _appInfo.AppID)) == null) { return(false); } } FrameworkGlobals.PassportInfo = passportInfo; _view.PassportStatus = LogMessagesUtils.ReplaceMessageSequencesAndReferences(FrameworkGlobals.MessagesLocalizer.GetString("label_remaining_tokens", FrameworkGlobals.ApplicationLanguage), remainingTokens: passportInfo.RemainingTokens); return(true); }