/// <summary>
        /// Initializes a new instance of the <see cref="JediOmniAuthenticator"/> class.
        /// </summary>
        /// <param name="device">The device.</param>
        /// <param name="credential">The credential.</param>
        /// <param name="provider">The provider.</param>
        public JediOmniAuthenticator(JediOmniDevice device, AuthenticationCredential credential, AuthenticationProvider provider)
            : base(credential, provider)
        {
            ControlPanel = device.ControlPanel;
            _provider    = provider;

            // The ProviderMap maps the text on the device, authentication drop down, to the authentication provider enum.

            ProviderMap.Add(AuthenticationProvider.Windows, new ProviderMapItem("Windows", "Windows"));
            ProviderMap.Add(AuthenticationProvider.DSS, new ProviderMapItem("DSS", "DSS"));
            ProviderMap.Add(AuthenticationProvider.LDAP, new ProviderMapItem("LDAP", "LDAP"));
            ProviderMap.Add(AuthenticationProvider.LocalDevice, new ProviderMapItem("Local Device", "Local Device"));
            ProviderMap.Add(AuthenticationProvider.SafeCom, new ProviderMapItem("SafeCom", "SafeCom"));
            ProviderMap.Add(AuthenticationProvider.SafeComUC, new ProviderMapItem("KOFAX", "KOFAX"));
            ProviderMap.Add(AuthenticationProvider.HpacDra, new ProviderMapItem("HPAC - DRA Server", "HPAC - DRA Server"));
            ProviderMap.Add(AuthenticationProvider.HpacIrm, new ProviderMapItem("HPAC - IRM Server", "HPAC - IRM Server"));
            ProviderMap.Add(AuthenticationProvider.HpacAgentLess, new ProviderMapItem("IRM Authentication", "IRM Authentication"));
            ProviderMap.Add(AuthenticationProvider.HpacPic, new ProviderMapItem("HPAC - PIC Server", "HPAC - PIC Server"));
            ProviderMap.Add(AuthenticationProvider.HpacWindows, new ProviderMapItem("HPAC-Windows", "HPAC-Windows"));
            ProviderMap.Add(AuthenticationProvider.Equitrac, new ProviderMapItem("Equitrac Authentication Agent", "Equitrac Authentication Agent"));
            ProviderMap.Add(AuthenticationProvider.EquitracWindows, new ProviderMapItem("Equitrac Authentication Agent", "Equitrac Authentication Agent"));
            ProviderMap.Add(AuthenticationProvider.Blueprint, new ProviderMapItem("Pharos Authentication Agent", "Pharos Authentication Agent"));
            ProviderMap.Add(AuthenticationProvider.PaperCut, new ProviderMapItem("PaperCut", "PaperCut"));
            ProviderMap.Add(AuthenticationProvider.ISecStar, new ProviderMapItem("User Authentication", "User Authentication"));
            ProviderMap.Add(AuthenticationProvider.Celiveo, new ProviderMapItem("Celiveo Authentication", "Celiveo Authentication"));
            ProviderMap.Add(AuthenticationProvider.SafeQ, new ProviderMapItem("YSoft SafeQ", "YSoft SafeQ"));
            ProviderMap.Add(AuthenticationProvider.AutoStore, new ProviderMapItem("AutoStore", "AutoStore"));
            ProviderMap.Add(AuthenticationProvider.PaperCutAgentless, new ProviderMapItem("PaperCut MF", "PaperCut MF"));
            ProviderMap.Add(AuthenticationProvider.UdocxScan, new ProviderMapItem("Udocx Scan", "Udocx Scan"));
            ProviderMap.Add(AuthenticationProvider.GeniusBytesGuest, new ProviderMapItem("Genius Bytes Guest Login", "Genius Bytes Guest Login"));
            ProviderMap.Add(AuthenticationProvider.GeniusBytesManual, new ProviderMapItem("Genius Bytes Manual Login", "Genius Bytes Manual Login"));
            ProviderMap.Add(AuthenticationProvider.GeniusBytesPin, new ProviderMapItem("Genius Bytes PIN Login", "Genius Bytes PIN Login"));
            ProviderMap.Add(AuthenticationProvider.HpRoamPin, new ProviderMapItem("Embedded Badge Authentication", "Embedded Badge Authentication"));
            ProviderMap.Add(AuthenticationProvider.HpId, new ProviderMapItem("HP Login", "HP Login"));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SiriusUIv3Authenticator"/> class.
        /// </summary>
        /// <param name="device">The device.</param>
        /// <param name="credential">The credential.</param>
        /// <param name="provider">The provider.</param>
        public SiriusUIv3Authenticator(SiriusUIv3Device device, AuthenticationCredential credential, AuthenticationProvider provider)
        {
            Credential   = credential;
            Provider     = provider;
            ControlPanel = device.ControlPanel;

            ProviderMap.Add(AuthenticationProvider.Windows, new ProviderMapItem("Windows", "Windows"));
            ProviderMap.Add(AuthenticationProvider.DSS, new ProviderMapItem("DSS", "DSS"));
            ProviderMap.Add(AuthenticationProvider.LocalDevice, new ProviderMapItem("Local Device", "Local Device"));
            ProviderMap.Add(AuthenticationProvider.SafeCom, new ProviderMapItem("SafeCom", "SafeCom"));
            ProviderMap.Add(AuthenticationProvider.HpacDra, new ProviderMapItem("DRA Authentication", "DRA Authentication"));
            ProviderMap.Add(AuthenticationProvider.HpacIrm, new ProviderMapItem("IRM Authentication", "IRM Authentication"));
            ProviderMap.Add(AuthenticationProvider.Equitrac, new ProviderMapItem("Equitrac Authentication Agent", "Equitrac Authentication Agent"));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="JediWindjammerAuthenticator"/> class.
        /// </summary>
        /// <param name="device">The device.</param>
        /// <param name="credential">The credential.</param>
        /// <param name="provider">The provider.</param>
        public JediWindjammerAuthenticator(JediWindjammerDevice device, AuthenticationCredential credential, AuthenticationProvider provider) : base(credential, provider)
        {
            ControlPanel = device.ControlPanel;
            _provider    = provider;

            ProviderMap.Add(AuthenticationProvider.Windows, new ProviderMapItem("Windows", "Windows"));
            ProviderMap.Add(AuthenticationProvider.DSS, new ProviderMapItem("DSS", "DSS"));
            ProviderMap.Add(AuthenticationProvider.LDAP, new ProviderMapItem("LDAP", "LDAP"));
            ProviderMap.Add(AuthenticationProvider.LocalDevice, new ProviderMapItem("Local Device", "Local Device"));
            ProviderMap.Add(AuthenticationProvider.SafeCom, new ProviderMapItem("SafeCom", "SafeCom"));
            ProviderMap.Add(AuthenticationProvider.HpacDra, new ProviderMapItem("HPAC - DRA Server", "HPAC - DRA Server"));
            ProviderMap.Add(AuthenticationProvider.HpacIrm, new ProviderMapItem("HPAC - IRM Server", "HPAC - IRM Server"));
            ProviderMap.Add(AuthenticationProvider.HpacWindows, new ProviderMapItem("HPAC-Windows", "HPAC-Windows"));
            ProviderMap.Add(AuthenticationProvider.HpacAgentLess, new ProviderMapItem("Code Expected", "Code Expected"));  // HPAC AgentLess first screen
            ProviderMap.Add(AuthenticationProvider.Equitrac, new ProviderMapItem("Equitrac Embedded", "Equitrac Authentication Agent"));
            ProviderMap.Add(AuthenticationProvider.EquitracWindows, new ProviderMapItem("Equitrac-Windows", "Equitrac-Windows"));
            ProviderMap.Add(AuthenticationProvider.Blueprint, new ProviderMapItem("Pharos Authentication Service", "Pharos Authentication Service"));
            ProviderMap.Add(AuthenticationProvider.AutoStore, new ProviderMapItem("AutoStore", "AutoStore"));
            ProviderMap.Add(AuthenticationProvider.HpRoamPin, new ProviderMapItem("Embedded Badge Authentication", "Embedded Badge Authentication"));
            ProviderMap.Add(AuthenticationProvider.PaperCut, new ProviderMapItem("PaperCut", "PaperCut"));
        }