@page @using Microsoft.AspNetCore.Http @using Microsoft.AspNetCore.Http.Extensions @using LinqToDB @using bahnplan.web.database @model IndexModel @{ ViewData["Title"] = "Home"; }
@if (HttpContext.Session.GetString("authorized") != "true") {

Welcome

Please log in to see your personal plan.

} else {

Welcome, @Model.AuthorizedUser.Username

Here are your planned trips.

@{ await using var db = new Database.DbConn(); var trips = db.Trips.Where(p => p.UserId == Model.AuthorizedUser.UserId).ToList(); foreach (var trip in trips.Where(trip => !db.Legs.Any(p => p.TripId == trip.TripId))) { await db.DeleteAsync(trip); trips = db.Trips.Where(p => p.UserId == Model.AuthorizedUser.UserId).ToList(); } foreach (var trip in trips.OrderBy(p => db.Legs.First(a => a.TripId == p.TripId).DepTime)) { var legs = db.Legs.Where(p => p.TripId == trip.TripId).OrderBy(p => p.DepTime).ToList(); var dates = DateTime.Parse(legs.First().DepTime).Date == DateTime.Parse(legs.Last().DepTime).Date ? legs.First().DepTime.Substring(0, 10) : legs.First().DepTime.Substring(0, 10) + "
" + legs.Last().DepTime.Substring(0, 10); } }
Date Origin Via Destination Comments Actions Danger zone
@Html.Raw(dates) @Html.Raw(legs.First().DepStation.PadRight(30, ' ').Substring(0, 30).TrimEnd()) @((from index in from leg in legs where leg.TrainType == "placeholder" select legs.IndexOf(leg) select legs[index - 1].ArrStation).ToList().DefaultIfEmpty("-").Aggregate((s1, s2) => $"{s1}, {s2}")) @Html.Raw(legs.Last().ArrStation.PadRight(30, ' ').Substring(0, 30).TrimEnd()) @Html.Raw(legs.Where(leg => !string.IsNullOrWhiteSpace(leg.Comment)).Select(p => p.Comment).DefaultIfEmpty("").Aggregate((s1, s2) => $"{s1}
{s2}"))
View Delete Trip

Add trip from ticket



Add trip from oeffisear.ch



}