@model LotteryWebApp.Models.RewardHistoryModel @using LotteryWebApp.Languages @using LotteryWebApp.Common @functions { public string FormatMoney(string amount) { if (string.IsNullOrEmpty(amount)) return "0"; var clean = new string(amount.Where(c => char.IsDigit(c)).ToArray()); if (long.TryParse(clean, out long val)) { return val.ToString("#,##0", new System.Globalization.CultureInfo("vi-VN")).Replace(",", "."); } return amount; } public string FormatTime(string raw) { if (string.IsNullOrEmpty(raw)) return "-"; string[] formats = { "M/d/yyyy h:mm:ss tt", "MM/dd/yyyy h:mm:ss tt", "dd/MM/yyyy HH:mm:ss", "yyyy-MM-dd HH:mm:ss" }; if (System.DateTime.TryParseExact(raw, formats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out var dt) || System.DateTime.TryParse(raw, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dt)) { return dt.ToString("dd/MM/yyyy HH:mm", new System.Globalization.CultureInfo("en-US")); } return raw; } public (string cls, string label) MapStatus(string status) { switch (status) { case "1": return ("reward-status-success", "Success"); case "0": return ("reward-status-processing", "Processing"); case "2": return ("reward-status-pending", "Pending"); case "3": return ("reward-status-reverted", "Reverted"); default: return ("reward-status-unknown", string.IsNullOrEmpty(status) ? "-" : status); } } public string MapPayment(string channelPayment) { if (channelPayment == "1") return "Wallet"; if (channelPayment == "0") return "Main Account"; return "-"; } } @if (Model != null && Model.list != null && Model.list.Count > 0) { foreach (var t in Model.list) { var (statusCls, statusLabel) = MapStatus(t.status);
#@(t.seq ?? t.id ?? "-") @statusLabel
@FormatMoney(t.money) HTG
From @(string.IsNullOrEmpty(t.acountSend) ? "-" : t.acountSend)
To @(string.IsNullOrEmpty(t.acountRecieve) ? "-" : t.acountRecieve)
Time @FormatTime(t.timeRequest)
Method @MapPayment(t.channelPayment)
} @if (!string.IsNullOrEmpty(Model.totalPage) && int.TryParse(Model.totalPage, out var total) && total > 1) { var seq = int.TryParse(Model.seqPage, out var s) ? s : 1;
Page @Model.seqPage / @Model.totalPage
} else {
} } else {

@Lang.no_results_found

}