/// <summary>
        /// Compares two GetServiceAuthorisation responses for equality.
        /// </summary>
        /// <param name="GetServiceAuthorisationResponse">A GetServiceAuthorisation response to compare with.</param>
        /// <returns>True if both match; False otherwise.</returns>
        public override Boolean Equals(GetServiceAuthorisationResponse GetServiceAuthorisationResponse)
        {
            if (GetServiceAuthorisationResponse is null)
            {
                return(false);
            }

            return(TransactionId.Equals(GetServiceAuthorisationResponse.TransactionId) &&
                   AuthorisationValue.Equals(GetServiceAuthorisationResponse.AuthorisationValue) &&
                   PartnerServiceSessionId.Equals(GetServiceAuthorisationResponse.PartnerServiceSessionId) &&
                   IntermediateCDRRequested.Equals(GetServiceAuthorisationResponse.IntermediateCDRRequested) &&
                   RequestStatus.Equals(GetServiceAuthorisationResponse.RequestStatus) &&

                   ((!UserContractIdAlias.HasValue && !GetServiceAuthorisationResponse.UserContractIdAlias.HasValue) ||
                    (UserContractIdAlias.HasValue && GetServiceAuthorisationResponse.UserContractIdAlias.HasValue && UserContractIdAlias.Value.Equals(GetServiceAuthorisationResponse.UserContractIdAlias.Value))));

            // ToDo: Compare MeterLimitLists!
        }