Files
csharp-uebung/FahzeugWPF/FahrzeugeModell.cs
2025-06-02 15:30:25 +02:00

46 lines
1.4 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;
}
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}");
}
}