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; List avaibleSanTyps = new List(); #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 { sanierungstyp = (ESanierung)Enum.Parse(typeof(ESanierung), value, true); } } public List AvaibleSanTyps => avaibleSanTyps; #endregion public SchaedenEditViewModel(Schaeden schaeden) { this.model = schaeden; entfernung = model.Entfernung; wurzelInkrustation = model.WurzelInkrustationAblagerungen; rissbruchscherbe = model.RissBruchScherbe; einragendeStutzen = model.StutzenEinragend; sanierungstyp = model.SanierungsTyp; string[] sanierungstypen = Enum.GetNames(typeof(ESanierung)); for (int i = 0; i < sanierungstypen.Length; i++) { avaibleSanTyps.Add(sanierungstypen[i]); } } public void Speichern() { model.SanierungsTyp = sanierungstyp; model.Entfernung = entfernung; model.WurzelInkrustationAblagerungen = wurzelInkrustation; model.RissBruchScherbe = rissbruchscherbe; model.StutzenEinragend = einragendeStutzen; unitOfWork.SchaedenRepository.Update(model); unitOfWork.Commit(); } } }