@page "{id:int}" @using AfRApay.Web.Backend.Database @using Microsoft.AspNetCore.Mvc.TagHelpers @using Microsoft.EntityFrameworkCore @using System.Globalization @using AfRApay.Web.Backend.Database.Tables @model EditUserModel @{ ViewData["Title"] = "Edit User"; if (Request.Method == "POST" && Request.Form["action"] == "delete") { return; } var db = new DatabaseContext(); var user = db.Users.First(p => p.Id == int.Parse(RouteData.Values["id"]!.ToString()!)); var cards = db.Cards.Include(p => p.User).Where(p => p.User == user); var formattedBalance = (user.Balance / 100m).ToString(CultureInfo.InvariantCulture); if (user.Balance % 10 == 0) { formattedBalance += formattedBalance.Contains(".") ? "0" : ".00"; } var linkFlag = db.Config.FirstOrDefault(p => p.Name == "link"); var lTimeFlag = db.Config.FirstOrDefault(p => p.Name == "lTime"); var linkActive = !string.IsNullOrWhiteSpace(linkFlag?.Value) && linkFlag.Value == user.Id.ToString() && !string.IsNullOrWhiteSpace(lTimeFlag?.Value) && DateTime.UtcNow - DateTime.Parse(lTimeFlag.Value) < TimeSpan.FromMinutes(5); } @section HeaderNavAddLocation { Edit User } @section Scripts { @if (linkActive) { } else { } }

Account


Cards

@{ async Task RenderCard(string cardHolder, string cardNumber = "Awooo!", string expDate = "01/2038", Card.CardType cardType = Card.CardType.Unknown, EditUserModel.CardDisplayType displayType = EditUserModel.CardDisplayType.Normal) { var cardTypeClasses = displayType switch { EditUserModel.CardDisplayType.Normal => "fake-card", EditUserModel.CardDisplayType.LinkPlaceholder => "fake-card ghost-card", EditUserModel.CardDisplayType.DeletionConfirmation => "fake-card", _ => throw new ArgumentOutOfRangeException(nameof(displayType), displayType, null)}; var blurClasses = displayType == EditUserModel.CardDisplayType.Normal ? " blur-true m-2" : "m-2";
@if (displayType == EditUserModel.CardDisplayType.Normal) {
} else if (displayType == EditUserModel.CardDisplayType.LinkPlaceholder) { if (linkActive) { } else {
} }
@if (cardNumber.Length < 12) { if (cardType == Card.CardType.Rfid125KhzGeneric) {

0000000@cardNumber[^3..]

} else {

@cardNumber

} } else {

@cardNumber

}

@cardHolder

VALID
THRU
@expDate
@switch (cardType) { case Card.CardType.Rfid125KhzGeneric:
break; case Card.CardType.NfcGeneric:
break; case Card.CardType.FeliCaGeneric:
break; case Card.CardType.NfcMifareClassic:
break; case Card.CardType.NfcTflOyster:
break; case Card.CardType.NfcOvChipkaart:
break; case Card.CardType.NfcItso:
break; case Card.CardType.NfcContactless:
break; case Card.CardType.FeliCaSuica:
break; case Card.CardType.FeliCaPasmo:
break; case Card.CardType.FeliCaApplePay:
break; case Card.CardType.Unknown: break; default: throw new ArgumentOutOfRangeException(nameof(cardType), cardType, null); }
} } @{ async Task RenderCardModal(string cardHolder, string cardNumber, Card.CardType cardType = Card.CardType.Unknown) { } }
@{ foreach (var card in cards) { await RenderCard(user.Nickname, card.Id, cardType: card.Type); await RenderCardModal(user.Nickname, card.Id, cardType: card.Type); } await RenderCard(user.Nickname, displayType: EditUserModel.CardDisplayType.LinkPlaceholder); }