using DaSaSo.Domain.Model; using DaSaSo.ViewModel.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.ViewModel.State.ActualState { public class ActualProject : IActualProject { public Client? AktuellClient { get; private set; } public Buildingsite? AktuellBaustelle { get; private set; } public Project? AktuellProjekt { get; private set; } public SewerObject? AktuellSewerObject { get; private set; } #region events public event EventHandler? ClientChanged; public event EventHandler? ProjectChanged; public event EventHandler? BuildingSiteChanged; public event EventHandler? SewerObjectChanged; protected void OnClientChanged() { ClientChanged?.Invoke(this, new EventArgs()); } protected void OnProjectChanged() { ProjectChanged?.Invoke(this, new EventArgs()); } protected void OnBuildingSiteChanged() { BuildingSiteChanged?.Invoke(this, new EventArgs()); } protected void OnSewerObjectChanged() { SewerObjectChanged?.Invoke(this, new EventArgs()); } #endregion public void SetClient(Client client, bool notification = true) { AktuellClient = client; if(notification) OnClientChanged(); } public void SetProject(Project project, bool notification = true) { AktuellProjekt = project; if(notification) OnProjectChanged(); } public void SetBuildingSite(Buildingsite buildingsite) { AktuellBaustelle = buildingsite; OnBuildingSiteChanged(); } public void SetSewerObject(SewerObject sewerObject,bool notification = true) { AktuellSewerObject = sewerObject; if(notification) OnSewerObjectChanged(); } public void ResetProject() { SetProject(null); ResetBuildingSite(); } public void ResetBuildingSite() { SetBuildingSite(null); } } }