@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);
// Millions result = 5 main numbers + 1 Mega Ball (the last one):
// - the 5 main numbers match in any order
// - the Mega Ball must match by position (the last ticket number)
var resultBalls = !string.IsNullOrEmpty(item.termResult)
? item.termResult.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
: new string[0];
var mainWinning = new HashSet();
string mbWinning = null;
if (resultBalls.Length > 0)
{
for (int i = 0; i < resultBalls.Length - 1; i++) mainWinning.Add(resultBalls[i].Trim());
mbWinning = resultBalls[resultBalls.Length - 1].Trim();
}
var mbIndex = balls.Length - 1;
for (int bi = 0; bi < balls.Length; bi++)
{
var ballValue = balls[bi].Trim();
if (!string.IsNullOrEmpty(ballValue))
{
string ballClass;
if (item.status == Constants.NOT_DRAW_CODE) {
ballClass = "ball-waiting";
} else if (bi == mbIndex) {
// Mega Ball: position-based comparison
ballClass = ballValue == mbWinning ? "ball-win" : "ball-lose";
} else if (mainWinning.Contains(ballValue)) {
ballClass = "ball-win";
} else {
ballClass = "ball-lose";
}