| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using SharedKernel.Extensions;
- using Domain.Entities.Wallets.ValueObject;
- using MediatR;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.RazorPages;
- namespace Admin.Pages.Member.Wallet.Transactions;
- public class ViewModel(IMediator mediator) : PageModel
- {
- public TransactionDetail Detail { get; set; } = new();
- public sealed class TransactionDetail
- {
- public int ID { get; set; }
- public Guid WalletKey { get; set; }
- public int WalletID { get; set; }
- public int MemberID { get; set; }
- public string MemberEmail { get; set; } = default!;
- public string? MemberName { get; set; }
- public string WalletBalance { get; set; } = "0";
- public string WalletDonationBalance { get; set; } = "0";
- public string TxType { get; set; } = default!;
- public string BalanceType { get; set; } = default!;
- public string Amount { get; set; } = "0";
- public string BalanceAfter { get; set; } = "0";
- public string? Reason { get; set; }
- public string? RefID { get; set; }
- public string? UserID { get; set; }
- public string? Memo { get; set; }
- public string CreatedAt { get; set; } = default!;
- }
- public async Task<IActionResult> OnGetAsync(int id, CancellationToken ct)
- {
- try
- {
- var result = await mediator.Send(new GetWalletTransaction.Query(id), ct);
- Detail = new TransactionDetail
- {
- ID = result.ID,
- WalletKey = result.WalletKey,
- WalletID = result.WalletID,
- MemberID = result.MemberID,
- MemberEmail = result.MemberEmail,
- MemberName = result.MemberName,
- WalletBalance = result.WalletBalance.ToString("N0"),
- WalletDonationBalance = result.WalletDonationBalance.ToString("N0"),
- TxType = GetTxTypeName(result.TxType),
- BalanceType = GetBalanceTypeName(result.BalanceType),
- Amount = result.Amount.ToString("N0"),
- BalanceAfter = result.BalanceAfter.ToString("N0"),
- Reason = result.Reason,
- RefID = result.RefID,
- UserID = result.UserID,
- Memo = result.Memo,
- CreatedAt = result.CreatedAt.GetDateAt()
- };
- }
- catch (Exception e)
- {
- TempData["ErrorMessages"] = e.Message;
- return RedirectToPage("List");
- }
- return Page();
- }
- private static string GetTxTypeName(WalletTransactionType type) => type switch
- {
- WalletTransactionType.Charge => "충전",
- WalletTransactionType.DonationIn => "후원 받음",
- WalletTransactionType.DonationOut => "후원 보냄",
- WalletTransactionType.RewardEarned => "보상 적립",
- WalletTransactionType.Spend => "사용",
- WalletTransactionType.Refund => "환불",
- WalletTransactionType.Lock => "잠금",
- WalletTransactionType.Unlock => "잠금 해제",
- WalletTransactionType.Adjusted => "조정",
- _ => type.ToString()
- };
- private static string GetBalanceTypeName(WalletBalanceType type) => type switch
- {
- WalletBalanceType.PgCharged => "PG 충전",
- WalletBalanceType.Deposit => "직접 입금",
- WalletBalanceType.Donation => "후원",
- WalletBalanceType.Reward => "보상",
- WalletBalanceType.Airdrop => "에어드랍",
- WalletBalanceType.Locked => "잠금",
- WalletBalanceType.Adjusted => "조정",
- _ => type.ToString()
- };
- }
|