/// <summary>
 /// Clones this AnalyticsSourceFinancialTransaction object to a new AnalyticsSourceFinancialTransaction object
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="deepCopy">if set to <c>true</c> a deep copy is made. If false, only the basic entity properties are copied.</param>
 /// <returns></returns>
 public static AnalyticsSourceFinancialTransaction Clone(this AnalyticsSourceFinancialTransaction source, bool deepCopy)
 {
     if (deepCopy)
     {
         return(source.Clone() as AnalyticsSourceFinancialTransaction);
     }
     else
     {
         var target = new AnalyticsSourceFinancialTransaction();
         target.CopyPropertiesFrom(source);
         return(target);
     }
 }
        /// <summary>
        /// Clones this AnalyticsSourceFinancialTransaction object to a new AnalyticsSourceFinancialTransaction object with default values for the properties in the Entity and Model base classes.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <returns></returns>
        public static AnalyticsSourceFinancialTransaction CloneWithoutIdentity(this AnalyticsSourceFinancialTransaction source)
        {
            var target = new AnalyticsSourceFinancialTransaction();

            target.CopyPropertiesFrom(source);

            target.Id          = 0;
            target.Guid        = Guid.NewGuid();
            target.ForeignKey  = null;
            target.ForeignId   = null;
            target.ForeignGuid = null;

            return(target);
        }
 /// <summary>
 /// Copies the properties from another AnalyticsSourceFinancialTransaction object to this AnalyticsSourceFinancialTransaction object
 /// </summary>
 /// <param name="target">The target.</param>
 /// <param name="source">The source.</param>
 public static void CopyPropertiesFrom(this AnalyticsSourceFinancialTransaction target, AnalyticsSourceFinancialTransaction source)
 {
     target.Id        = source.Id;
     target.AccountId = source.AccountId;
     target.Amount    = source.Amount;
     target.AuthorizedCurrentPersonKey = source.AuthorizedCurrentPersonKey;
     target.AuthorizedFamilyId         = source.AuthorizedFamilyId;
     target.AuthorizedPersonAliasId    = source.AuthorizedPersonAliasId;
     target.AuthorizedPersonKey        = source.AuthorizedPersonKey;
     target.BatchId = source.BatchId;
     target.Count   = source.Count;
     target.CreditCardTypeValueId          = source.CreditCardTypeValueId;
     target.CurrencyTypeValueId            = source.CurrencyTypeValueId;
     target.DaysSinceLastTransactionOfType = source.DaysSinceLastTransactionOfType;
     target.EntityId                 = source.EntityId;
     target.EntityTypeId             = source.EntityTypeId;
     target.FinancialGatewayId       = source.FinancialGatewayId;
     target.ForeignGuid              = source.ForeignGuid;
     target.ForeignKey               = source.ForeignKey;
     target.GivingGroupId            = source.GivingGroupId;
     target.GivingId                 = source.GivingId;
     target.IsFirstTransactionOfType = source.IsFirstTransactionOfType;
     target.IsScheduled              = source.IsScheduled;
     target.ProcessedByPersonAliasId = source.ProcessedByPersonAliasId;
     target.ProcessedDateTime        = source.ProcessedDateTime;
     target.SourceTypeValueId        = source.SourceTypeValueId;
     target.Summary                = source.Summary;
     target.TransactionCode        = source.TransactionCode;
     target.TransactionDateKey     = source.TransactionDateKey;
     target.TransactionDateTime    = source.TransactionDateTime;
     target.TransactionDetailId    = source.TransactionDetailId;
     target.TransactionFrequency   = source.TransactionFrequency;
     target.TransactionId          = source.TransactionId;
     target.TransactionKey         = source.TransactionKey;
     target.TransactionTypeValueId = source.TransactionTypeValueId;
     target.ModifiedDateTime       = source.ModifiedDateTime;
     target.Guid      = source.Guid;
     target.ForeignId = source.ForeignId;
 }