From e4ad77461a0ca810b943a27a3c8aa5dd02fe1fba Mon Sep 17 00:00:00 2001
From: Laura Hausmann
Date: Sat, 13 Jun 2020 07:30:56 +0200
Subject: [PATCH] small fixes
---
bahnplan.web/Pages/Delete.cshtml | 6 +++---
bahnplan.web/Pages/Delete.cshtml.cs | 6 ++++++
bahnplan.web/Pages/Trip.cshtml | 9 +++++++++
bahnplan.web/Pages/Trip.cshtml.cs | 4 ++++
4 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/bahnplan.web/Pages/Delete.cshtml b/bahnplan.web/Pages/Delete.cshtml
index be5c3ce..6b04897 100644
--- a/bahnplan.web/Pages/Delete.cshtml
+++ b/bahnplan.web/Pages/Delete.cshtml
@@ -44,11 +44,11 @@
break;
}
case "leg": {
- Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true&redir={Request.Query["redir"]}");
+ Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true&redir={Request.Query["redir"].ToString().UrlEncode()}");
break;
}
case "ticket": {
- Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true&redir={Request.Query["redir"]}");
+ Response.Redirect($"/Delete?item={Request.Query["item"]}&id={Request.Query["id"]}&confirm=true&redir={Request.Query["redir"].ToString().UrlEncode()}");
break;
}
case "card": {
@@ -65,5 +65,5 @@
}
Cancel
- Confirm
+ Confirm
}
\ No newline at end of file
diff --git a/bahnplan.web/Pages/Delete.cshtml.cs b/bahnplan.web/Pages/Delete.cshtml.cs
index b1f9d9f..3bb8a5c 100644
--- a/bahnplan.web/Pages/Delete.cshtml.cs
+++ b/bahnplan.web/Pages/Delete.cshtml.cs
@@ -37,9 +37,15 @@ namespace bahnplan.web.Pages {
return;
var tripid = db.Legs.First(p => p.LegId == id).TripId;
+
db.Legs.Delete(p => p.LegId == id);
+
if (!db.Legs.Any(p => p.TripId == tripid))
db.Trips.Delete(p => p.TripId == tripid);
+ else if (db.Legs.Where(p => p.TripId == tripid).OrderBy(p => p.DepTime).First().DepTime.EndsWith("placeholder"))
+ db.Delete(db.Legs.Where(p => p.TripId == tripid).OrderBy(p => p.DepTime).First());
+ else if (db.Legs.Where(p => p.TripId == tripid).OrderByDescending(p => p.DepTime).First().DepTime.EndsWith("placeholder"))
+ db.Delete(db.Legs.Where(p => p.TripId == tripid).OrderByDescending(p => p.DepTime).First());
break;
}
case "ticket": {
diff --git a/bahnplan.web/Pages/Trip.cshtml b/bahnplan.web/Pages/Trip.cshtml
index 046f27a..eee4e3f 100644
--- a/bahnplan.web/Pages/Trip.cshtml
+++ b/bahnplan.web/Pages/Trip.cshtml
@@ -16,11 +16,20 @@
return;
}
+ if (Model.RedirToIndex) {
+ Response.Redirect("/");
+ }
+
if (Request.HasFormContentType) {
Response.Redirect(Request.GetEncodedUrl());
return;
}
+ if (!Model.Legs.Any()) {
+ Response.Redirect("/");
+ return;
+ }
+
if (Model.Legs.First().UserId != int.Parse(HttpContext.Session.GetString("uid"))) {
return;
}
diff --git a/bahnplan.web/Pages/Trip.cshtml.cs b/bahnplan.web/Pages/Trip.cshtml.cs
index fa0b1ea..fd44eeb 100644
--- a/bahnplan.web/Pages/Trip.cshtml.cs
+++ b/bahnplan.web/Pages/Trip.cshtml.cs
@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages;
namespace bahnplan.web.Pages {
public class TripModel : PageModel {
public List Legs;
+ public bool RedirToIndex;
public void OnGet() {
if (HttpContext.Session.GetString("authorized") != "true")
@@ -35,6 +36,9 @@ namespace bahnplan.web.Pages {
return;
}
+ if (!db.Legs.Any(p => p.TripId == int.Parse(Request.Query["id"])))
+ RedirToIndex = true;
+
Legs = db.Legs.Where(p => p.TripId == int.Parse(Request.Query["id"])).OrderBy(p => p.DepTime).ToList();
}