Example #1
0
        /// <summary>
        /// Create an instance for a plan subscription and
        /// a payment transaction.
        /// If transaction exists on database, it gets the record updating the transaction status.
        /// </summary>
        /// <param name="userPlan"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public static UserFeePayment FromSubscriptionTransaction(UserPaymentPlan userPlan, Braintree.Transaction transaction)
        {
            var payment = GetBySubscriptionTransaction(userPlan.userID, userPlan.subscriptionID, transaction.Id);

            if (payment == null)
            {
                // New one
                payment = new UserFeePayment
                {
                    userID         = userPlan.userID,
                    subscriptionID = userPlan.subscriptionID,
                    paymentAmount  = transaction.Amount ?? 0,
                    paymentDate    = transaction.CreatedAt ?? DateTime.Now,
                    paymentMethod  = userPlan.paymentMethod,
                    //paymentMethod = LcPayment.PaymentMethodInfo.Get(transaction.CreditCard.Token).Description,
                    paymentPlan          = transaction.PlanId,
                    paymentStatus        = transaction.Status.ToString(),
                    paymentTransactionID = transaction.Id
                };
            }
            else
            {
                // Update status
                payment.paymentStatus = transaction.Status.ToString();
            }
            return(payment);
        }
Example #2
0
 public static void Set(UserFeePayment data)
 {
     using (var db = new LcDatabase())
     {
         db.Execute(sqlSet,
                    data.userID,
                    data.paymentDate,
                    data.paymentAmount,
                    data.paymentMethod,
                    data.paymentPlan,
                    data.paymentTransactionID,
                    data.paymentStatus
                    );
     }
 }