/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return(CDRNature.GetHashCode() * 41 ^ ServiceSessionId.GetHashCode() * 37 ^ RequestedServiceId.GetHashCode() * 31 ^ EVSEId.GetHashCode() * 27 ^ UserContractIdAlias.GetHashCode() * 23 ^ UserId.GetHashCode() * 21 ^ StartTime.GetHashCode() * 19 ^ EndTime.GetHashCode() * 17 ^ MeterReports.GetHashCode() * 13 ^ (ExecPartnerSessionId.HasValue ? ExecPartnerSessionId.GetHashCode() * 11 : 0) ^ (ExecPartnerOperatorId.HasValue ? ExecPartnerOperatorId.GetHashCode() * 7 : 0) ^ (SalesPartnerSessionId.HasValue ? SalesPartnerSessionId.GetHashCode() * 5 : 0) ^ (SalesPartnerOperatorId.HasValue ? SalesPartnerOperatorId.GetHashCode() * 3 : 0) ^ (PartnerProductId.HasValue ? PartnerProductId.GetHashCode() : 0)); } }
/// <summary> /// Compares two charge detail records for equality. /// </summary> /// <param name="ChargeDetailRecord">A charge detail record to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public Boolean Equals(ChargeDetailRecord ChargeDetailRecord) { if ((Object)ChargeDetailRecord == null) { return(false); } return(CDRNature.Equals(ChargeDetailRecord.CDRNature) && ServiceSessionId.Equals(ChargeDetailRecord.ServiceSessionId) && RequestedServiceId.Equals(ChargeDetailRecord.RequestedServiceId) && EVSEId.Equals(ChargeDetailRecord.EVSEId) && UserContractIdAlias.Equals(ChargeDetailRecord.UserContractIdAlias) && UserId.Equals(ChargeDetailRecord.UserId) && StartTime.Equals(ChargeDetailRecord.StartTime) && EndTime.Equals(ChargeDetailRecord.EndTime) && ExecPartnerSessionId.Equals(ChargeDetailRecord.ExecPartnerSessionId) && ExecPartnerOperatorId.Equals(ChargeDetailRecord.ExecPartnerOperatorId) && SalesPartnerSessionId.Equals(ChargeDetailRecord.SalesPartnerSessionId) && SalesPartnerOperatorId.Equals(ChargeDetailRecord.SalesPartnerOperatorId) && PartnerProductId.Equals(ChargeDetailRecord.PartnerProductId) && MeterReports.Equals(ChargeDetailRecord.MeterReports)); }