/// <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); }
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 ); } }