Update README; add delete confirmation page; code cleanup
This commit is contained in:
parent
4ef567d257
commit
5f4a510cee
|
@ -8,3 +8,10 @@
|
||||||
- Stuff WILL break
|
- 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
|
- 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.
|
- 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`
|
|
@ -5,13 +5,51 @@
|
||||||
@model DeleteModel
|
@model DeleteModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Home";
|
ViewData["Title"] = "Home";
|
||||||
|
|
||||||
|
|
||||||
if (HttpContext.Session.GetString("authorized") != "true") {
|
if (HttpContext.Session.GetString("authorized") != "true") {
|
||||||
Response.Redirect("/");
|
Response.Redirect("/");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Layout = null;
|
if (Request.Query.ContainsKey("confirm") && Request.Query["confirm"] == "true") {
|
||||||
Response.Redirect(Request.Headers["Referer"]);
|
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")
|
if (HttpContext.Session.GetString("authorized") != "true")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!Request.Query.ContainsKey("confirm") || Request.Query["confirm"] != "true")
|
||||||
|
return;
|
||||||
|
|
||||||
var uid = int.Parse(HttpContext.Session.GetString("uid"));
|
var uid = int.Parse(HttpContext.Session.GetString("uid"));
|
||||||
using var db = new Database.DbConn();
|
using var db = new Database.DbConn();
|
||||||
AuthorizedUser = db.Users.FirstOrDefault(p => p.UserId == uid);
|
AuthorizedUser = db.Users.FirstOrDefault(p => p.UserId == uid);
|
||||||
|
|
|
@ -9,14 +9,12 @@ using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
namespace bahnplan.web.Pages {
|
namespace bahnplan.web.Pages {
|
||||||
public class TripModel : PageModel {
|
public class TripModel : PageModel {
|
||||||
public List<Leg> Legs;
|
public List<Leg> Legs;
|
||||||
public Ticket Ticket;
|
|
||||||
|
|
||||||
public void OnGet() {
|
public void OnGet() {
|
||||||
|
|
||||||
if (HttpContext.Session.GetString("authorized") != "true") {
|
if (HttpContext.Session.GetString("authorized") != "true") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
using var db = new Database.DbConn();
|
using var db = new Database.DbConn();
|
||||||
if (Request.Query.ContainsKey("separator")) {
|
if (Request.Query.ContainsKey("separator")) {
|
||||||
var leg = db.Legs.First(p => p.LegId == int.Parse(Request.Query["legid"]));
|
var leg = db.Legs.First(p => p.LegId == int.Parse(Request.Query["legid"]));
|
||||||
|
@ -35,15 +33,7 @@ namespace bahnplan.web.Pages {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).ToList();
|
Legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).OrderBy(p => p.DepTime).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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in a new issue