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