@page
@using Microsoft.AspNetCore.Http
@using Microsoft.AspNetCore.Http.Extensions
@using trainav.web.database
@using System.Text
@model InspectionModel
@{
ViewData["Title"] = "Inspection";
if (HttpContext.Session.GetString("authorized") != "true") {
Response.Redirect($"/Login?&redir={Request.GetDisplayUrl().UrlEncode()}");
return;
}
if (Model.Leg.UserId != int.Parse(HttpContext.Session.GetString("uid"))) {
return;
}
}
Ticket for @Model.Leg.TrainType @Model.Leg.TrainNr from @Model.Leg.DepStation to @Model.Leg.ArrStation, starting @DateTime.Parse(Model.Leg.DepTime).ToString("yyyy-MM-dd HH:mm")
@Model.Ticket.TicketInfo
@if (Model.Ticket.TicketInfo.Contains("BC 50")) {
await using var db = new Database.DbConn();
if (db.Cards.Any(p => p.Value == 50 && p.Traveller == Model.Ticket.Traveller && p.UserId == Model.Leg.UserId)) {
var card = db.Cards.First(p => p.Value == 50 && p.Traveller == Model.Ticket.Traveller && p.UserId == Model.Leg.UserId);
if (!card.CardQr.StartsWith("data:image/png"))
card.CardQr = Encoding.UTF8.GetString(Convert.FromBase64String(card.CardQr));
if (!card.CardSecCode.StartsWith("data:image/png"))
card.CardSecCode = Encoding.UTF8.GetString(Convert.FromBase64String(card.CardSecCode));
if (!card.CardImage.StartsWith("
var from = DateTime.Parse(card.ValidFrom);
var to = DateTime.Parse(card.ValidTo);
var qrfrom = DateTime.Parse(card.QrValidFrom);
var qrto = DateTime.Parse(card.QrValidTo);
if (from > DateTime.Now) {
The above card is not valid yet.
}
if (to < DateTime.Now) {
The above card is expired.
}
if (qrfrom > DateTime.Now && !(from > DateTime.Now)) {
The above QR code is somehow not valid yet. Congrats, please open a bug report.
}
if (qrto < DateTime.Now) {
}
}
else {
I would show your BahnCard but you haven't added a card matching the value and name of the ticket yet.
You can do that now.
}
}
else if (Model.Ticket.TicketInfo.Contains("BC 25")) {
await using var db = new Database.DbConn();
if (db.Cards.Any(p => p.Value == 25 && p.Traveller == Model.Ticket.Traveller && p.UserId == Model.Leg.UserId)) {
var card = db.Cards.First(p => p.Value == 25 && p.Traveller == Model.Ticket.Traveller && p.UserId == Model.Leg.UserId);
if (!card.CardQr.StartsWith("data:image/png"))
card.CardQr = Encoding.UTF8.GetString(Convert.FromBase64String(card.CardQr));
if (!card.CardSecCode.StartsWith("data:image/png"))
card.CardSecCode = Encoding.UTF8.GetString(Convert.FromBase64String(card.CardSecCode));
if (!card.CardImage.StartsWith("
var from = DateTime.Parse(card.ValidFrom);
var to = DateTime.Parse(card.ValidTo);
var qrfrom = DateTime.Parse(card.QrValidFrom);
var qrto = DateTime.Parse(card.QrValidTo);
if (from > DateTime.Now) {
The above card is not valid yet.
}
if (to < DateTime.Now) {
The above card is expired.
}
if (qrfrom > DateTime.Now && !(from > DateTime.Now)) {
The above QR code is somehow not valid yet. Congrats, please open a bug report.
}
if (qrto < DateTime.Now) {
}
}
else {
I would show your BahnCard but you haven't added a card matching the value and name of the ticket yet.
You can do that now.
}
}