From 8579b885e145c04024d2310d8d91c9d57036e421 Mon Sep 17 00:00:00 2001 From: jafreli Date: Mon, 19 May 2025 15:28:57 +0200 Subject: [PATCH] aktualisieren seite eingebaut --- FahrzeugDatenBank/FahrzeugRepository.cs | 36 ++++++++++++++++++ .../Controllers/FahrzeugController.cs | 37 +++++++++++++++++++ .../Models/FahrzeugAktualisierenModel.cs | 22 +++++++++++ .../Views/Fahrzeug/Aktualisieren.cshtml | 22 +++++++++++ FahrzeugeMVC/Views/Fahrzeug/Index.cshtml | 3 ++ 5 files changed, 120 insertions(+) create mode 100644 FahrzeugeMVC/Models/FahrzeugAktualisierenModel.cs create mode 100644 FahrzeugeMVC/Views/Fahrzeug/Aktualisieren.cshtml diff --git a/FahrzeugDatenBank/FahrzeugRepository.cs b/FahrzeugDatenBank/FahrzeugRepository.cs index f3f73e0..893be67 100644 --- a/FahrzeugDatenBank/FahrzeugRepository.cs +++ b/FahrzeugDatenBank/FahrzeugRepository.cs @@ -34,6 +34,30 @@ public class FahrzeugRepository return fahrzeugs; } + public FahrzeugDTO GetFahrzeugByID(int id) + { + using var datenbankVerbindung = new MySqlConnection(_connectionString); + datenbankVerbindung.Open(); + + const string query = "SELECT id, fahrzeug_name, fahrzeug_typ FROM fahrzeuge WHERE id = @fahrzeug_id;"; + using var kommando = new MySqlCommand(query, datenbankVerbindung); + kommando.Parameters.AddWithValue("@fahrzeug_id", id); + var reader = kommando.ExecuteReader(); + + List fahrzeugs = new(); + while (reader.Read()) + { + var fahrzeug = new FahrzeugDTO(); + fahrzeug.Id = reader.GetInt32(0); + fahrzeug.Name = reader.GetString(1); + fahrzeug.Typ = reader.GetString(2); + + fahrzeugs.Add(fahrzeug); + } + + return fahrzeugs[0]; + } + public void FuegeFahrzeugEin(string fahrzeugName, string fahrzeugTyp) { using var datenbankVerbindung = new MySqlConnection(_connectionString); @@ -46,6 +70,18 @@ public class FahrzeugRepository kommando.ExecuteNonQuery(); } + public void AktualisiereFahrzeug(int id, string fahrzeugName, string fahrzeugTyp) + { + using var datenbankVerbindung = new MySqlConnection(_connectionString); + datenbankVerbindung.Open(); + const string query = "UPDATE fahrzeuge SET fahrzeug_name = @fahrzeug_name, fahrzeug_typ = @fahrzeug_typ WHERE id = @id;"; + using var kommando = new MySqlCommand(query, datenbankVerbindung); + kommando.Parameters.AddWithValue("@fahrzeug_name", fahrzeugName); + kommando.Parameters.AddWithValue("@fahrzeug_typ", fahrzeugTyp); + kommando.Parameters.AddWithValue("@id", id); + kommando.ExecuteNonQuery(); + } + public void LoescheFahrzeug(int id) { using var datenbankVerbindung = new MySqlConnection(_connectionString); diff --git a/FahrzeugeMVC/Controllers/FahrzeugController.cs b/FahrzeugeMVC/Controllers/FahrzeugController.cs index 91d776a..344ed90 100644 --- a/FahrzeugeMVC/Controllers/FahrzeugController.cs +++ b/FahrzeugeMVC/Controllers/FahrzeugController.cs @@ -55,6 +55,43 @@ public class FahrzeugController : Controller } } + [HttpGet] + public IActionResult Aktualisieren(int id) + { + if (ModelState.IsValid) + { + string connectionString = this.GetConnectionString(); + var repository = new FahrzeugRepository(connectionString); + var fahrzeug = repository.GetFahrzeugByID(id); + var model = new FahrzeugAktualisierenModel(); + model.Id = fahrzeug.Id; + model.Type = fahrzeug.Typ; + model.Name = fahrzeug.Name; + return View(model); + } + else + { + return View(); + } + } + + [HttpPost] + public IActionResult Aktualisieren(FahrzeugAktualisierenModel model) + { + if (ModelState.IsValid && !string.IsNullOrEmpty(model.Name) && !string.IsNullOrEmpty(model.Type)) + { + string connectionString = this.GetConnectionString(); + var repository = new FahrzeugRepository(connectionString); + int id = (int)model.Id; + repository.AktualisiereFahrzeug(id, model.Name, model.Type); + return RedirectToAction(nameof(Index)); + } + else + { + return View(model); + } + } + [HttpGet] public IActionResult Loesche(int id) { diff --git a/FahrzeugeMVC/Models/FahrzeugAktualisierenModel.cs b/FahrzeugeMVC/Models/FahrzeugAktualisierenModel.cs new file mode 100644 index 0000000..9688729 --- /dev/null +++ b/FahrzeugeMVC/Models/FahrzeugAktualisierenModel.cs @@ -0,0 +1,22 @@ +using FahrzeugDatenBank; +using Microsoft.AspNetCore.Mvc.Rendering; +using System.ComponentModel.DataAnnotations; + +namespace FahrzeugeMVC.Models; + +public class FahrzeugAktualisierenModel +{ + [Required] + public int? Id { get; set; } + [Required] + public string? Name { get; set; } + [Required] + public string? Type { get; set; } + + public List FahrzeugTypen { get; private set; } = new() + { + new SelectListItem("Auto", "Auto", true), + new SelectListItem("Motorrad", "Motorrad"), + new SelectListItem("Fahrrad", "Fahrrad") + }; +} diff --git a/FahrzeugeMVC/Views/Fahrzeug/Aktualisieren.cshtml b/FahrzeugeMVC/Views/Fahrzeug/Aktualisieren.cshtml new file mode 100644 index 0000000..09f4ae3 --- /dev/null +++ b/FahrzeugeMVC/Views/Fahrzeug/Aktualisieren.cshtml @@ -0,0 +1,22 @@ +@model FahrzeugAktualisierenModel + +

Aktualisiere das Fahrzeug:

+ +
+
+ +
+ + + +
+
+ + + +
+
+
+ +
+
\ No newline at end of file diff --git a/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml b/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml index 1e2c056..38d9fb3 100644 --- a/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml +++ b/FahrzeugeMVC/Views/Fahrzeug/Index.cshtml @@ -24,6 +24,9 @@ @fahrzeug.Id @fahrzeug.Name @fahrzeug.GetType() + + Aktualisieren + Löschen