Files

86 lines
2.4 KiB
C#

using Microsoft.Win32;
using SewerStammGen.Shared.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StammGenerator.ViewModel
{
internal class ActualState : IActualState
{
const string userroot = "HKEY_CURRENT_USER\\Software";
const string firmkey = "WWTech";
const string subkey = "StammGenerator";
// TODO: set auf private set setzen
public int ProjektID { get; set; }
public int SchachtID { get; private set; }
public int HaltungID { get; private set; }
public Schacht SelectedSchacht { get; private set; }
public Kanal SelectedHaltung {get; private set; }
public void SetProjekt(Projekt projekt, bool notification = true)
{
ProjektID = projekt.Id;
if(notification)
{
OnProjektChanged();
}
string keyName = userroot + "\\" + firmkey + "\\" + subkey;
Registry.SetValue(keyName, "LastProjekt", ProjektID);
}
public void SetSchacht(Schacht schacht, bool notification = true)
{
SelectedSchacht = schacht;
SchachtID = schacht.Id;
if(notification)
{
OnSchachtChanged();
}
}
public void SetHaltung(Kanal haltung, bool notification = true)
{
SelectedHaltung = haltung;
HaltungID = haltung.Id;
if(notification)
{
OnHaltungChanged();
}
}
public event EventHandler? ProjektChanged;
public event EventHandler? SchachtChanged;
public event EventHandler? HaltungChanged;
private void OnProjektChanged()
{
ProjektChanged?.Invoke(this, new EventArgs());
}
private void OnSchachtChanged()
{
SchachtChanged?.Invoke(this, new EventArgs());
}
private void OnHaltungChanged()
{
HaltungChanged?.Invoke(this, new EventArgs());
}
public void LoadLastProjekt()
{
string keyName = userroot + "\\" + firmkey + "\\" + subkey;
if(Registry.GetValue(keyName,"LastProjekt","")!= null)
{
ProjektID = Convert.ToInt32(Registry.GetValue(keyName, "LastProjekt", ""));
OnProjektChanged();
}
}
}
}