125 lines
4.3 KiB
C#
125 lines
4.3 KiB
C#
using MySqlConnector;
|
|
|
|
namespace FahrzeugDatenBank;
|
|
|
|
public class FahrzeugRepository : IFahrzeugRepository
|
|
{
|
|
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 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<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[0];
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
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);
|
|
datenbankVerbindung.Open();
|
|
|
|
const string query = "DELETE FROM fahrzeuge WHERE id = @fahrzeug_id;";
|
|
using var kommando = new MySqlCommand(query, datenbankVerbindung);
|
|
kommando.Parameters.AddWithValue("@fahrzeug_id", id);
|
|
kommando.ExecuteNonQuery();
|
|
}
|
|
|
|
public List<FahrzeugDTO> 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<FahrzeugDTO> 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;
|
|
}
|
|
}
|