Update README; add delete confirmation page; code cleanup
This commit is contained in:
parent
4ef567d257
commit
5f4a510cee
|
@ -8,3 +8,10 @@
|
|||
- Stuff WILL break
|
||||
- I am not responsible if some DB guy comes knocking on your doorstep if you use this or this software creates any kind of other damages
|
||||
- Most importantly: have fun.
|
||||
|
||||
## Development / testing requirements
|
||||
- .NET Core SDK (version 3.1.3 or higher; arch package `dotnet-sdk`)
|
||||
- ASP.NET Core Runtime (version 3.1.3 or higher; arch package `aspnet-runtime`)
|
||||
|
||||
- `cd bahnplan.web`
|
||||
- `dotnet run`
|
|
@ -6,12 +6,50 @@
|
|||
@{
|
||||
ViewData["Title"] = "Home";
|
||||
|
||||
|
||||
if (HttpContext.Session.GetString("authorized") != "true") {
|
||||
Response.Redirect("/");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Request.Query.ContainsKey("confirm") && Request.Query["confirm"] == "true") {
|
||||
Layout = null;
|
||||
Response.Redirect(Request.Headers["Referer"]);
|
||||
}
|
||||
|
||||
else {
|
||||
<h3>Are you sure?</h3>
|
||||
<p>
|
||||
You are attempting to delete
|
||||
@{
|
||||
await using var db = new Database.DbConn();
|
||||
}
|
||||
@switch (Request.Query["item"]) {
|
||||
case "trip": {
|
||||
var legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).OrderBy(p => p.DepTime).ToList();;
|
||||
|
||||
<span>
|
||||
the trip from <b>@legs.First().DepStation</b> to <b>@legs.Last().ArrStation</b>, starting <i>@legs.First().DepTime</i>
|
||||
</span>
|
||||
break;
|
||||
}
|
||||
case "leg": {
|
||||
Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true");
|
||||
break;
|
||||
}
|
||||
case "ticket": {
|
||||
Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true");
|
||||
break;
|
||||
}
|
||||
case "card": {
|
||||
var card = db.Cards.First(p => p.CardId == int.Parse(Request.Query["id"]));
|
||||
<span>
|
||||
the card <b>@card.CardInfo.TrimEnd('#')</b> with the number <i>@card.CardNumber</i>, owned by <b>@card.Traveller</b>
|
||||
</span>
|
||||
break;
|
||||
}
|
||||
}
|
||||
</p>
|
||||
<a href="@Request.Headers["Referer"]" class="btn btn-sm btn-secondary">Cancel</a>
|
||||
<a href="/Delete?item=@Request.Query["item"]&id=@Request.Query["id"]&confirm=true" class="btn btn-sm btn-danger">Confirm</a>
|
||||
}
|
||||
}
|
|
@ -18,6 +18,9 @@ namespace bahnplan.web.Pages {
|
|||
if (HttpContext.Session.GetString("authorized") != "true")
|
||||
return;
|
||||
|
||||
if (!Request.Query.ContainsKey("confirm") || Request.Query["confirm"] != "true")
|
||||
return;
|
||||
|
||||
var uid = int.Parse(HttpContext.Session.GetString("uid"));
|
||||
using var db = new Database.DbConn();
|
||||
AuthorizedUser = db.Users.FirstOrDefault(p => p.UserId == uid);
|
||||
|
|
|
@ -9,10 +9,8 @@ using Microsoft.AspNetCore.Mvc.RazorPages;
|
|||
namespace bahnplan.web.Pages {
|
||||
public class TripModel : PageModel {
|
||||
public List<Leg> Legs;
|
||||
public Ticket Ticket;
|
||||
|
||||
public void OnGet() {
|
||||
|
||||
if (HttpContext.Session.GetString("authorized") != "true") {
|
||||
return;
|
||||
}
|
||||
|
@ -35,15 +33,7 @@ namespace bahnplan.web.Pages {
|
|||
return;
|
||||
}
|
||||
|
||||
var legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).ToList();
|
||||
Legs = new List<Leg>();
|
||||
foreach (var j in legs) {
|
||||
Legs.Add(j);
|
||||
if (j.TicketId != 0)
|
||||
Ticket = db.Tickets.First(p => p.TicketId == j.TicketId);
|
||||
}
|
||||
|
||||
Legs = Legs.OrderBy(p => p.DepTime).ToList();
|
||||
Legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).OrderBy(p => p.DepTime).ToList();
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue