@model LotteryWebApp.Models.UserTicketHistoryModel @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; } } @if (Model != null && Model.listTicket != null && Model.listTicket.Count > 0) { foreach (var item in Model.listTicket) {
#@item.seq
@if (!string.IsNullOrEmpty(item.code)) { var delimiters = new[] { ';', ',' }; var balls = item.code.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); // Prepare winning numbers for comparison var winningBalls = new HashSet(); if (!string.IsNullOrEmpty(item.termResult)) { var winningSplit = item.termResult.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); foreach (var wb in winningSplit) winningBalls.Add(wb.Trim()); } foreach (var ball in balls) { var ballValue = ball.Trim(); if (!string.IsNullOrEmpty(ballValue)) { string ballClass = ""; if (item.status == Constants.NOT_DRAW_CODE) { ballClass = "ball-waiting"; } else if (winningBalls.Contains(ballValue)) { ballClass = "ball-win"; } else { ballClass = "ball-lose"; } // Map single-letter codes to full labels var displayValue = ballValue; var isLabel = false; switch (ballValue.ToUpper()) { case "B": displayValue = "Big"; isLabel = true; break; case "S": displayValue = "Small"; isLabel = true; break; case "O": displayValue = "Odd"; isLabel = true; break; case "E": displayValue = "Even"; isLabel = true; break; } if (isLabel) {
@displayValue
} else {
@displayValue
} } } }
@Lang.millions_date_and_time @item.createDate
@Lang.millions_amount_played @FormatMoney(item.money) HTG
@if (item.status == Constants.WIN_CODE) {
@Lang.millions_amount_won @FormatMoney(item.moneyWin) HTG
}
@Lang.millions_tap_to_see_detail
} @if (Model.totalPage != null && int.Parse(Model.totalPage) > 1) { var seq = int.Parse(Model.seqPage); var total = int.Parse(Model.totalPage);
Page @Model.seqPage / @Model.totalPage
} else {
} } else {

@Lang.no_results_found

}