51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using FahrzeugDatenBank;
|
|
|
|
namespace FahzeugWPF;
|
|
|
|
class FahrzeugeModell
|
|
{
|
|
private readonly FahrzeugRepository _repository;
|
|
|
|
public FahrzeugeModell(FahrzeugRepository repository)
|
|
{
|
|
this._repository = repository;
|
|
}
|
|
|
|
public async Task<IEnumerable<Fahrzeug>> LadeAlleFahrzeuge()
|
|
{
|
|
List<FahrzeugDTO>? fahrzeugs = await Task.Run(() =>
|
|
{
|
|
return _repository.HoleAlleFahrzeuge();
|
|
});
|
|
var fahrzeugListe = KonvertiereFahrzeuge(fahrzeugs);
|
|
return fahrzeugListe;
|
|
}
|
|
|
|
public void LoescheFahrzeug(Fahrzeug fahrzeug)
|
|
{
|
|
_repository.LoescheFahrzeug(fahrzeug.Id);
|
|
}
|
|
|
|
private IEnumerable<Fahrzeug> KonvertiereFahrzeuge(IEnumerable<FahrzeugDTO> fahrzeugs)
|
|
{
|
|
return fahrzeugs.Select(fahrzeug => KonvertiereFahrzeuf(fahrzeug));
|
|
}
|
|
|
|
private Fahrzeug KonvertiereFahrzeuf(FahrzeugDTO fahrzeugDTO)
|
|
{
|
|
switch (fahrzeugDTO.Typ)
|
|
{
|
|
case "Auto":
|
|
var auto = new Auto() { Id = fahrzeugDTO.Id, Name = fahrzeugDTO.Name, };
|
|
return auto;
|
|
case "Motorrad":
|
|
var motorrad = new Motorrad() { Id = fahrzeugDTO.Id, Name = fahrzeugDTO.Name, };
|
|
return motorrad;
|
|
case "Fahrrad":
|
|
var fahrrad = new Fahrrad() { Id = fahrzeugDTO.Id, Name = fahrzeugDTO.Name, };
|
|
return fahrrad;
|
|
}
|
|
throw new Exception($"Unbekannter FahrzeugTyp: {fahrzeugDTO.Typ}");
|
|
}
|
|
}
|