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.Linq; using System.Text; namespace KanSan.ViewModel { public class SanierungskonzeptListViewModel : ISanierungskonzeptListViewModel { IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext()); private bool canAddNewSan = true; Sanierungskonzept sanKonzept; private ESanierung sanierung; private Schaeden schaden; private List taetigkeiten = new List(); public ESanierung Sanierung => sanierung; public bool CanAddNewSan => canAddNewSan; public List Taetigkeiten => taetigkeiten; public SanierungskonzeptListViewModel(Schaeden schaden) { //this.schaden = schaden; var d = unitOfWork.SchaedenRepository.Get(x => x.GuidNr.Equals(schaden.GuidNr),includeProperties: "Sanierungskonzept").First(); canAddNewSan = (d.Sanierungskonzept == null); this.schaden = d; if (!canAddNewSan) { sanierung = d.Sanierungskonzept.SanierungsTyp; sanKonzept = unitOfWork.SanierungskonzeptRepository.Get(x => x.GuidNr.Equals(d.Sanierungskonzept.GuidNr),includeProperties: "Taetigkeiten,Taetigkeiten.LeistungsverzeichnisPosition").FirstOrDefault(); taetigkeiten = sanKonzept.Taetigkeiten; } } public Taetigkeiten NeueTaetigkeit() { Guid guid = Guid.NewGuid(); Taetigkeiten taetigkeiten = new Taetigkeiten() { Sanierungskonzept = this.sanKonzept, GuidNr = guid }; sanKonzept.Taetigkeiten.Add(taetigkeiten); unitOfWork.SanierungskonzeptRepository.Update(sanKonzept); unitOfWork.Commit(); return taetigkeiten; } public Sanierungskonzept NeueSanierungskonzept() { Guid guid = Guid.NewGuid(); Sanierungskonzept san = new Sanierungskonzept() { GuidNr = guid, }; schaden.Sanierungskonzept = san; unitOfWork.SchaedenRepository.Update(schaden); unitOfWork.Commit(); return san; } } }