/// <summary>
        /// <para>Initializes a new instance of the <see cref="LoginSuccessDetails" />
        /// class.</para>
        /// </summary>
        /// <param name="loginMethod">Login method.</param>
        /// <param name="isEmmManaged">Tells if the login device is EMM managed. Might be
        /// missing due to historical data gap.</param>
        public LoginSuccessDetails(LoginMethod loginMethod,
                                   bool?isEmmManaged = null)
        {
            if (loginMethod == null)
            {
                throw new sys.ArgumentNullException("loginMethod");
            }

            this.LoginMethod  = loginMethod;
            this.IsEmmManaged = isEmmManaged;
        }
        /// <summary>
        /// <para>Initializes a new instance of the <see cref="LoginFailDetails" />
        /// class.</para>
        /// </summary>
        /// <param name="loginMethod">Login method.</param>
        /// <param name="errorDetails">Error details.</param>
        /// <param name="isEmmManaged">Tells if the login device is EMM managed. Might be
        /// missing due to historical data gap.</param>
        public LoginFailDetails(LoginMethod loginMethod,
                                FailureDetailsLogInfo errorDetails,
                                bool?isEmmManaged = null)
        {
            if (loginMethod == null)
            {
                throw new sys.ArgumentNullException("loginMethod");
            }

            if (errorDetails == null)
            {
                throw new sys.ArgumentNullException("errorDetails");
            }

            this.LoginMethod  = loginMethod;
            this.ErrorDetails = errorDetails;
            this.IsEmmManaged = isEmmManaged;
        }