using System; using _0_Framework.Domain; using Company.Domain.FinancialInvoiceAgg; using CompanyManagment.App.Contracts.PaymentTransaction; namespace Company.Domain.PaymentTransactionAgg; /// /// نمایانگر یک تراکنش پرداخت شامل جزئیات طرف قرارداد، اطلاعات بانکی، وضعیت تراکنش و مبلغ. /// public class PaymentTransaction:EntityBase { /// /// سازنده کلاس PaymentTransaction با دریافت اطلاعات تراکنش. /// /// شناسه طرف قرارداد /// مبلغ تراکنش /// /// /// public PaymentTransaction(long contractingPartyId, double amount, string contractingPartyName,string callBackUrl, PaymentTransactionGateWay gateway) { ContractingPartyId = contractingPartyId; Status = PaymentTransactionStatus.Pending; Amount = amount; ContractingPartyName = contractingPartyName; CallBackUrl = callBackUrl; Gateway = gateway; } /// /// تاریخ و زمان انجام پرداخت /// public DateTime TransactionDate { get; private set; } /// /// شناسه طرف حساب /// public long ContractingPartyId { get; private set; } /// /// نام طرف حساب /// public string ContractingPartyName { get; private set; } /// /// نام بانک /// public string BankName { get; private set; } /// /// شماره کارت /// public string CardNumber { get; private set; } /// /// وضعیت تراکنش پرداخت /// public PaymentTransactionStatus Status { get; private set; } /// /// مبلغ تراکنش /// public double Amount { get; private set; } /// /// شناسه یکتای تراکنش /// public string TransactionId { get; private set; } public string CallBackUrl { get; private set; } public PaymentTransactionGateWay Gateway { get; private set; } public string Rrn { get; private set; } public string DigitalReceipt { get; private set; } public FinancialInvoice FinancialInvoice { get; set; } public long? FinancialInvoiceId { get; set; } public void SetPaid(string cardNumber,string bankName,string rrn,string digitalReceipt) { Status = PaymentTransactionStatus.Success; TransactionDate = DateTime.Now; CardNumber = cardNumber; BankName = bankName; Rrn = rrn; DigitalReceipt = digitalReceipt; } public void SetFailed() { Status = PaymentTransactionStatus.Failed; TransactionDate = DateTime.Now; } public void SetTransactionId(string transactionId) { TransactionId = transactionId; } }