/// <summary>
        /// Return the HashCode of this object.
        /// </summary>
        /// <returns>The HashCode of this object.</returns>
        public override Int32 GetHashCode()
        {
            unchecked
            {
                return(ProviderId.GetHashCode() * 17 ^
                       EVSEId.GetHashCode() * 13 ^
                       Identification.GetHashCode() * 11 ^

                       (SessionId.HasValue
                            ? SessionId.GetHashCode() * 9
                            : 0) ^

                       (CPOPartnerSessionId.HasValue
                            ? CPOPartnerSessionId.GetHashCode() * 7
                            : 0) ^

                       (EMPPartnerSessionId.HasValue
                            ? EMPPartnerSessionId.GetHashCode() * 5
                            : 0) ^

                       (PartnerProductId.HasValue
                            ? PartnerProductId.GetHashCode() * 3
                            : 0) ^

                       (Duration.HasValue
                            ? Duration.GetHashCode()
                            : 0));
            }
        }
        /// <summary>
        /// Return the HashCode of this object.
        /// </summary>
        /// <returns>The HashCode of this object.</returns>
        public override Int32 GetHashCode()
        {
            unchecked
            {
                return(ProviderId.GetHashCode() * 17 ^
                       EVSEId.GetHashCode() * 13 ^
                       Identification.GetHashCode() * 11 ^

                       (SessionId?.GetHashCode() ?? 0) * 7 ^
                       (CPOPartnerSessionId?.GetHashCode() ?? 0) * 5 ^
                       (EMPPartnerSessionId?.GetHashCode() ?? 0) * 3 ^
                       (PartnerProductId?.GetHashCode() ?? 0));
            }
        }