/// <summary>
        /// Gets the hash code for the specified <see cref="BearerTokenKey"/>.
        /// </summary>
        /// <param name="obj">The <see cref="BearerTokenKey"/> for which a hash code is to be returned.</param>
        /// <returns>A hash code for the specified object.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="obj"/> is null</exception>
        public int GetHashCode(BearerTokenKey obj)
        {
            if (obj != null)
            {
                int hashCode = HashCodeHelper.DefaultInitialValue;

                hashCode = HashCodeHelper.AddRef(hashCode, obj.EndPoint);
                hashCode = HashCodeHelper.AddString(hashCode, obj.UserName, Comparison);
                hashCode = HashCodeHelper.AddString(hashCode, obj.Environment, Comparison);
                hashCode = HashCodeHelper.AddValue(hashCode, obj.ImpersonateUserId);

                return(hashCode);
            }

            return(HashCodeHelper.DefaultValue);
        }