From 20303466b6c85a5087d748e1fd160f5e24d039cc Mon Sep 17 00:00:00 2001 From: jafreli Date: Wed, 30 Apr 2025 01:10:55 +0200 Subject: [PATCH] feature: suche --- FahrzeugDatenBank/FahrzeugRepository.cs | 29 +++++++++++++++++++ .../Controllers/FahrzeugController.cs | 17 ++++++++--- FahrzeugeMVC/Views/Fahrzeug/Index.cshtml | 7 +++++ 3 files changed, 49 insertions(+), 4 deletions(-) diff --git a/FahrzeugDatenBank/FahrzeugRepository.cs b/FahrzeugDatenBank/FahrzeugRepository.cs index 52a91ca..f3f73e0 100644 --- a/FahrzeugDatenBank/FahrzeugRepository.cs +++ b/FahrzeugDatenBank/FahrzeugRepository.cs @@ -56,4 +56,33 @@ public class FahrzeugRepository kommando.Parameters.AddWithValue("@fahrzeug_id", id); kommando.ExecuteNonQuery(); } + + public List SucheFahrzeuge(string searchTerm) + { + using var datenbankVerbindung = new MySqlConnection(_connectionString); + datenbankVerbindung.Open(); + + const string query = "SELECT id, fahrzeug_name, fahrzeug_typ FROM fahrzeuge WHERE fahrzeug_name LIKE @searchTerm OR fahrzeug_typ LIKE @searchTerm;"; + + using var kommando = new MySqlCommand(query, datenbankVerbindung); + + kommando.Parameters.AddWithValue("@searchTerm", "%" + searchTerm + "%"); + + using var reader = kommando.ExecuteReader(); + + List fahrzeugs = new(); + while (reader.Read()) + { + var fahrzeug = new FahrzeugDTO + { + Id = reader.GetInt32(0), + Name = reader.GetString(1), + Typ = reader.GetString(2) + }; + + fahrzeugs.Add(fahrzeug); + } + + return fahrzeugs; + } } diff --git a/FahrzeugeMVC/Controllers/FahrzeugController.cs b/FahrzeugeMVC/Controllers/FahrzeugController.cs index 4f56dc8..91d776a 100644 --- a/FahrzeugeMVC/Controllers/FahrzeugController.cs +++ b/FahrzeugeMVC/Controllers/FahrzeugController.cs @@ -7,14 +7,23 @@ namespace FahrzeugeMVC.Controllers; public class FahrzeugController : Controller { - public IActionResult Index() + public IActionResult Index(string searchTerm) { string connectionString = this.GetConnectionString(); - var respsitory = new FahrzeugRepository(connectionString); - List? fahrzeugs = respsitory.HoleAlleFahrzeuge(); + var repository = new FahrzeugRepository(connectionString); + + List fahrzeugs; + + if (!string.IsNullOrEmpty(searchTerm)) + { + fahrzeugs = repository.SucheFahrzeuge(searchTerm); + } + else + { + fahrzeugs = repository.HoleAlleFahrzeuge(); + } var model = new FahrzeugListeModel(fahrzeugs); - return View(model); } diff --git a/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml b/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml index b8b148e..1e2c056 100644 --- a/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml +++ b/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml @@ -2,6 +2,13 @@

Diese Fahrzeuge befinden sich derzeit in der Datenbank:

+
+
+ + +
+
+