@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)
{
@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
{
}