/// <summary>
        /// Return the HashCode of this object.
        /// </summary>
        /// <returns>The HashCode of this object.</returns>
        public override Int32 GetHashCode()
        {
            unchecked
            {
                return((ChargeDetailRecords.Any()
                           ? ChargeDetailRecords.GetHashCode() * 5
                           : 0) ^

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

                return((!ChargeDetailRecords.Any() && !GetChargeDetailRecordsResponse.ChargeDetailRecords.Any()) ||
                       (ChargeDetailRecords.Any() && GetChargeDetailRecordsResponse.ChargeDetailRecords.Any() && ChargeDetailRecords.Count().Equals(GetChargeDetailRecordsResponse.ChargeDetailRecords.Count())) &&

                       (StatusCode != null && GetChargeDetailRecordsResponse.StatusCode != null) ||
                       (StatusCode == null && GetChargeDetailRecordsResponse.StatusCode == null && StatusCode.Equals(GetChargeDetailRecordsResponse.StatusCode)));
            }