feature: add blazor app

This commit is contained in:
2025-04-30 00:34:47 +02:00
parent c65e6ac140
commit 57e5119985
33 changed files with 774 additions and 0 deletions

57
FahrzeugDatenBank/Auto.cs Normal file
View File

@@ -0,0 +1,57 @@

namespace FahrzeugDatenBank
{
public class Auto : Fahrzeug, IAuftankbar
{
public Auto()
{
base.AnzahlRaeder = 4;
base.ReifenTyp = "Sommer";
}
private bool istAufgetankt = false;
public void Auftanken()
{
this.istAufgetankt = true;
}
public override void WechsleReifenTyp()
{
if (base.ReifenTyp == "Sommer")
{
base.ReifenTyp = "Winter";
}
else
{
base.ReifenTyp = "Sommer";
}
}
}
}
namespace FahrzeugDatenBank
{
public class Auto2 : Fahrzeug
{
public Auto2()
{
base.AnzahlRaeder = 4;
base.ReifenTyp = "Sommer";
}
public override void WechsleReifenTyp()
{
if (base.ReifenTyp == "Sommer")
{
base.ReifenTyp = "Winter";
}
else
{
base.ReifenTyp = "Sommer";
}
}
}
}

View File

@@ -0,0 +1,24 @@

namespace FahrzeugDatenBank
{
public class Fahrrad : Fahrzeug
{
public Fahrrad()
{
base.AnzahlRaeder = 2;
base.ReifenTyp = "Strassenreifen";
}
public override void WechsleReifenTyp()
{
if (base.ReifenTyp == "Strassenreifen")
{
base.ReifenTyp = "Rennreifen";
}
else
{
base.ReifenTyp = "Strassenreifen";
}
}
}
}

View File

@@ -0,0 +1,75 @@

namespace FahrzeugDatenBank
{
public abstract class Fahrzeug
{
public Fahrzeug()
{
this.ReifenTyp = "";
}
public string? Name { get; set; }
public int Id { get; set; }
public int AnzahlRaeder { get; protected set; }
public string ReifenTyp { get; protected set; }
public abstract void WechsleReifenTyp();
public virtual void SetzeAnzahlRaeder(int anzahlDerRaeder)
{
if (anzahlDerRaeder < 0) return;
this.AnzahlRaeder = anzahlDerRaeder;
}
}
}
namespace FahrzeugDatenBank
{
public class Fahrzeug2
{
public Fahrzeug2()
{
this.SetAnzahlRaeder(4);
}
public Fahrzeug2(int anzahlDerReader)
{
this.SetAnzahlRaeder(anzahlDerReader);
}
private int anzahlRaeder;
public int GetAnzahlRaeder()
{
return this.anzahlRaeder;
}
protected void SetAnzahlRaeder(int anzahlDerReader)
{
this.anzahlRaeder = anzahlDerReader;
}
}
}
namespace FahrzeugDatenBank
{
public class Fahrzeug3
{
public Fahrzeug3()
{
this.AnzahlRaeder = 4;
}
public Fahrzeug3(int anzahlDerReader)
{
this.AnzahlRaeder = anzahlDerReader;
}
public int AnzahlRaeder { get; protected set; }
}
}

View File

@@ -0,0 +1,8 @@
namespace FahrzeugDatenBank;
public class FahrzeugDTO
{
public int Id { get; set; }
public string? Name { get; set; }
public string? Typ { get; set; }
}

View File

@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MySqlConnector" Version="2.4.0" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,48 @@
using MySqlConnector;
namespace FahrzeugDatenBank;
public class FahrzeugRepository
{
private string _connectionString;
public FahrzeugRepository(string connectionString)
{
_connectionString = connectionString;
}
public List<FahrzeugDTO> HoleAlleFahrzeuge()
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "SELECT id, fahrzeug_name, fahrzeug_typ FROM fahrzeuge";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
var reader = kommando.ExecuteReader();
List<FahrzeugDTO> 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;
}
public void FuegeFahrzeugEin(string fahrzeugName, string fahrzeugTyp)
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "INSERT INTO fahrzeuge (fahrzeug_name, fahrzeug_typ)" + "VALUES (@fahrzeug_name, @fahrzeug_typ);";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
kommando.Parameters.AddWithValue("@fahrzeug_name", fahrzeugName);
kommando.Parameters.AddWithValue("@fahrzeug_typ", fahrzeugTyp);
kommando.ExecuteNonQuery();
}
}

View File

@@ -0,0 +1,12 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("DocumentationHeader", "PropertyDocumentationHeader:The property must have a documentation header.", Justification = "<Ausstehend>", Scope = "module")]
[assembly: SuppressMessage("DocumentationHeader", "ConstructorDocumentationHeader:The constructor must have a documentation header.", Justification = "<Ausstehend>", Scope = "module")]
[assembly: SuppressMessage("DocumentationHeader", "MethodDocumentationHeader:The method must have a documentation header.", Justification = "<Ausstehend>", Scope = "module")]
[assembly: SuppressMessage("DocumentationHeader", "ConstFieldDocumentationHeader:The field must have a documentation header.", Justification = "<Ausstehend>", Scope = "module")]
[assembly: SuppressMessage("CodeQuality", "IDE0052:Ungelesene private Member entfernen", Justification = "<Ausstehend>", Scope = "module")]

View File

@@ -0,0 +1,9 @@

namespace FahrzeugDatenBank
{
public interface IAuftankbar
{
public void Auftanken();
}
}

View File

@@ -0,0 +1,13 @@

namespace FahrzeugDatenBank
{
public class KettenSaege : IAuftankbar
{
private bool istAufgetankt = false;
public void Auftanken()
{
this.istAufgetankt = true;
}
}
}

View File

@@ -0,0 +1,57 @@

namespace FahrzeugDatenBank
{
public class Motorrad : Fahrzeug, IAuftankbar
{
public Motorrad()
{
base.AnzahlRaeder = 2;
base.ReifenTyp = "schmal";
}
private bool istAufgetankt = false;
public void Auftanken()
{
this.istAufgetankt = true;
}
public override void WechsleReifenTyp()
{
if (base.ReifenTyp == "schmal")
{
base.ReifenTyp = "breit";
}
else
{
base.ReifenTyp = "schmal";
}
}
}
}
namespace FahrzeugDatenBank
{
public class Motorrad2 : Fahrzeug
{
public Motorrad2()
{
base.AnzahlRaeder = 2;
base.ReifenTyp = "schmal";
}
public override void WechsleReifenTyp()
{
if (base.ReifenTyp == "schmal")
{
base.ReifenTyp = "breit";
}
else
{
base.ReifenTyp = "schmal";
}
}
}
}