86 lines
2.4 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|