Schäden können nun hinzugefügt werden

This commit is contained in:
Husky
2020-03-29 15:54:58 +02:00
parent 6abd8f663a
commit 3f715adcec
16 changed files with 217 additions and 139 deletions

View File

@@ -0,0 +1,107 @@
using KanSan.Base;
using KanSan.Base.Enums;
using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Text;
namespace KanSan.ViewModel
{
public class SchaedenEditViewModel : PropertyChangedClass, INotifyPropertyChanged, ISchaedenEditViewModel
{
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
decimal entfernung;
bool wurzelInkrustation;
bool rissbruchscherbe;
bool einragendeStutzen;
ESanierung sanierungstyp;
private Schaeden model;
#region GetSetters
public decimal Entfernung
{
get => entfernung;
set
{
if (entfernung == value) return;
entfernung = value;
OnPropertyChanged();
}
}
public bool WurzelInkrustationAblagerungen
{
get => wurzelInkrustation;
set
{
if (wurzelInkrustation == value) return;
wurzelInkrustation = value;
OnPropertyChanged();
}
}
public bool RissBruchScherbe
{
get => rissbruchscherbe;
set
{
if (rissbruchscherbe == value) return;
rissbruchscherbe = value;
OnPropertyChanged();
}
}
public bool EinragendeStutzen
{
get => einragendeStutzen;
set
{
if (einragendeStutzen == value) return;
einragendeStutzen = value;
OnPropertyChanged();
}
}
public string Sanierungstyp
{
get
{
switch(sanierungstyp)
{
case ESanierung.ERNEUERUNG: return "Offene Bauweise";
case ESanierung.RENOVATION: return "Renovation";
case ESanierung.REPERATUR: return "Reperatur";
default: return "Unbekannt";
}
}
set
{
throw new NotImplementedException();
}
}
#endregion
public SchaedenEditViewModel(Schaeden schaeden)
{
this.model = schaeden;
entfernung = model.Entfernung;
wurzelInkrustation = model.WurzelInkrustationAblagerungen;
rissbruchscherbe = model.RissBruchScherbe;
einragendeStutzen = model.StutzenEinragend;
sanierungstyp = model.SanierungsTyp;
}
public void Speichern()
{
model.Entfernung = entfernung;
model.WurzelInkrustationAblagerungen = wurzelInkrustation;
model.RissBruchScherbe = rissbruchscherbe;
model.StutzenEinragend = einragendeStutzen;
unitOfWork.SchaedenRepository.Update(model);
unitOfWork.Commit();
}
}
}

View File

@@ -0,0 +1,44 @@
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Interfaces.UI;
using KanSan.Base.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace KanSan.ViewModel
{
public class SchaedenListViewModel : ISchaedenListViewModel
{
private Sewer actualSelectedSewer;
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private List<Schaeden> schaeden;
public List<Schaeden> Schaeden { get => schaeden; }
public SchaedenListViewModel(Sewer actualSelectedSewer)
{
this.actualSelectedSewer = actualSelectedSewer;
schaeden = unitOfWork.SchaedenRepository.Get(x => x.Sewer.Equals(actualSelectedSewer)).ToList();
}
public Schaeden NeueSchaden()
{
Guid guid = Guid.NewGuid();
Schaeden neueSchaden = new Schaeden()
{
GuidNr = guid,
Sewer = actualSelectedSewer
};
unitOfWork.SchaedenRepository.Update(neueSchaden,false);
unitOfWork.Commit();
List<Schaeden> res = unitOfWork.SchaedenRepository.Get(x => x.GuidNr.Equals(guid)).ToList();
if (res.Count < 1) throw new Exception("Der zuvor eingefügte Schäden konnte nicht gefunden werden");
return res.First();
}
}
}