/// <summary>
        /// Compares two instances of this object.
        /// </summary>
        /// <param name="QRCodeIdentification">An QR code identification with (hashed) pin object to compare with.</param>
        public Int32 CompareTo(QRCodeIdentification QRCodeIdentification)
        {
            if ((Object)QRCodeIdentification == null)
            {
                throw new ArgumentNullException(nameof(QRCodeIdentification), "The given QR code identification with (hashed) pin must not be null!");
            }

            var result = EVCOId.CompareTo(QRCodeIdentification.EVCOId);

            if (result == 0)
            {
                result = String.Compare(PIN, QRCodeIdentification.PIN, StringComparison.OrdinalIgnoreCase);
            }

            if (result == 0)
            {
                result = Function.CompareTo(QRCodeIdentification.Function);
            }

            if (result == 0)
            {
                result = String.Compare(Salt, QRCodeIdentification.Salt, StringComparison.OrdinalIgnoreCase);
            }

            return(result);
        }