/// <summary>
        /// Determines whether the specified object has equal values to this object in all fields.
        /// </summary>
        /// <param name="obj">
        /// The object whose values to compare.
        /// </param>
        /// <returns>
        /// True if the two objects have the same values.
        /// </returns>
        public override bool Equals(object obj)
        {
            PartnerDealInfo partnerDealInfo = (PartnerDealInfo)obj;

            return(PartnerId == partnerDealInfo.PartnerId &&
                   PartnerDealId == partnerDealInfo.PartnerDealId &&
                   PartnerMerchantLocations.Except(partnerDealInfo.PartnerMerchantLocations).Any() == false &&
                   partnerDealInfo.PartnerMerchantLocations.Except(PartnerMerchantLocations).Any() == false);
        }
 /// <summary>
 /// Initializes a new instance of the class derived from PartnerDealInfo, using the fields from the specified other
 /// PartnerDealInfo.
 /// </summary>
 /// <param name="partnerDealInfo">
 /// The other PartnerDealInfo whose fields to copy.
 /// </param>
 internal PartnerDealInfo(PartnerDealInfo partnerDealInfo)
 {
     PartnerId     = partnerDealInfo.PartnerId;
     PartnerDealId = partnerDealInfo.PartnerDealId;
     PartnerDealRegistrationStatusId = partnerDealInfo.PartnerDealRegistrationStatusId;
     PartnerMerchantLocations        = new Collection <PartnerMerchantLocationInfo>();
     foreach (PartnerMerchantLocationInfo partnerMerchantLocationInfo in partnerDealInfo.PartnerMerchantLocations)
     {
         PartnerMerchantLocations.Add(new PartnerMerchantLocationInfo
         {
             PartnerMerchantId     = partnerMerchantLocationInfo.PartnerMerchantId,
             PartnerMerchantIdType = partnerMerchantLocationInfo.PartnerMerchantIdType
         });
     }
 }