ViewModels in eigene DLL gepackt

This commit is contained in:
Husky
2020-02-22 18:52:29 +01:00
parent d7ea23f812
commit 169cfb9830
8 changed files with 25 additions and 5 deletions

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\KanSan.Base\KanSan.Base.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,117 @@
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace KanSan.ViewModel
{
public class KundenEditViewModel : PropertyChangedClass, INotifyPropertyChanged
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private Kunde _kunde;
private string vorname;
private string nachname;
private string strasse;
private string plz;
private string ort;
#region getters
public string Vorname
{
get
{
return vorname;
}
set
{
if (vorname == value) return;
vorname = value;
OnPropertyChanged();
}
}
public string Nachname
{
get
{
return nachname;
}
set
{
if (nachname == value) return;
nachname = value;
OnPropertyChanged();
}
}
public string Strasse
{
get
{
return strasse;
}
set
{
if (strasse == value) return;
strasse = value;
OnPropertyChanged();
}
}
public string PLZ
{
get
{
return plz;
}
set
{
if (plz == value) return;
plz = value;
OnPropertyChanged();
}
}
public string Ort
{
get
{
return ort;
}
set
{
if (ort == value) return;
ort = value;
OnPropertyChanged();
}
}
#endregion
public KundenEditViewModel(Kunde kunde = null)
{
if (kunde == null)
_kunde = unitOfWork.KundenRepository.Get().First();
else
_kunde = kunde;
vorname = _kunde.Vorname;
nachname = _kunde.Nachname;
strasse = _kunde.Strasse;
plz = _kunde.PLZ;
ort = _kunde.Ort;
}
public void Speichern()
{
_kunde.Vorname = Vorname;
_kunde.Nachname = Nachname;
_kunde.Strasse = Strasse;
_kunde.Ort = Ort;
_kunde.PLZ = PLZ;
unitOfWork.KundenRepository.Update(_kunde);
unitOfWork.Commit();
}
}
}

View File

@@ -0,0 +1,44 @@
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace KanSan.ViewModel
{
public class KundenListViewModel
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private List<Kunde> kunden;
public List<Kunde> Kunden
{
get
{
return kunden;
}
}
public KundenListViewModel()
{
kunden = unitOfWork.KundenRepository.Get().ToList();
}
public Kunde NeueKunde()
{
Kunde result = new Kunde();
result.GuidNr = Guid.NewGuid();
unitOfWork.KundenRepository.Insert(result);
unitOfWork.Commit();
IEnumerable<Kunde> kunden = unitOfWork.KundenRepository.Get(d => d.GuidNr.Equals(result.GuidNr));
if (kunden.Count() < 1)
throw new Exception("Kunde konnte nicht gefunden werden");
return kunden.First();
}
}
}

View File

@@ -0,0 +1,59 @@
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace KanSan.ViewModel
{
public class ProjektViewModel : PropertyChangedClass,INotifyPropertyChanged
{
private Projekt _baustelle;
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private string ortTeil;
private string baustelleNummer;
public string OrtTeil
{
get
{
return ortTeil;
}
set
{
if (ortTeil == value) return;
ortTeil = value;
OnPropertyChanged();
}
}
public string BaustelleNummer
{
get
{
return baustelleNummer;
}
set
{
if (baustelleNummer == value) return;
baustelleNummer = value;
OnPropertyChanged();
}
}
public ProjektViewModel()
{
_baustelle = unitOfWork.ProjekteRepository.Get().First();
ortTeil = _baustelle.Ort;
baustelleNummer = _baustelle.Projektnummer;
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
namespace KanSan.ViewModel
{
public class PropertyChangedClass
{
public event PropertyChangedEventHandler PropertyChanged;
protected internal void OnPropertyChanged([CallerMemberName] string propertyname = null)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
}
}
}