234 lines
7.8 KiB
C#
234 lines
7.8 KiB
C#
using DichtheitManagement.Contract;
|
|
using Mappings;
|
|
using Models;
|
|
using Ninject;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Input;
|
|
|
|
namespace GuiWPF.ViewModel
|
|
{
|
|
enum MenuEntries
|
|
{
|
|
AUFTRAGGEBER = 0,
|
|
BAUVORHABEN = 1,
|
|
INSPEKTIONSOBJEKTE = 2
|
|
}
|
|
public class MainWindowViewModel : ViewModelBase
|
|
{
|
|
private MenuEntries _selectedMenu;
|
|
public ICommand LoadHomePageCommand { get; private set; }
|
|
public ICommand LoadSettingsPageCommand { get; private set;}
|
|
public ICommand LoadAuftraggeberListPageCommand { get; private set; }
|
|
public ICommand LoadEditAuftraggeberPageCommand { get; private set; }
|
|
public ICommand AddNewInspektionsObjektCommand { get; private set; }
|
|
public ICommand NextMenuEntriePageCommand { get; set; }
|
|
|
|
|
|
|
|
private Models.Auftraggeber _selectedAuftraggeber;
|
|
private Models.Bauvorhaben _selectedBauvorhaben;
|
|
private Models.Inspektionsobjekt _selectedsewerobject;
|
|
|
|
public List<Models.Bauvorhaben> BauvorhabenListe
|
|
{
|
|
get
|
|
{
|
|
if(SelectedAuftraggeber != null && SelectedAuftraggeber.Baustellen != null)
|
|
return SelectedAuftraggeber.Baustellen.ToList();
|
|
return new List<Models.Bauvorhaben>();
|
|
|
|
}
|
|
set
|
|
{
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
public List<Models.Inspektionsobjekt> InspektionsobjekteListe
|
|
{
|
|
get
|
|
{
|
|
if(SelectedAuftraggeber != null && SelectedBauvorhaben.Prüfobjekte != null)
|
|
return SelectedBauvorhaben.Prüfobjekte.ToList();
|
|
return new List<Models.Inspektionsobjekt>();
|
|
}
|
|
set
|
|
{
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public Models.Bauvorhaben SelectedBauvorhaben
|
|
{
|
|
get => _selectedBauvorhaben;
|
|
set
|
|
{
|
|
if(value != _selectedBauvorhaben)
|
|
{
|
|
_selectedBauvorhaben = value;
|
|
OnPropertyChanged();
|
|
InspektionsobjekteListe.Clear();
|
|
InspektionsobjekteListe = _selectedBauvorhaben.Prüfobjekte;
|
|
}
|
|
}
|
|
}
|
|
|
|
public Models.Auftraggeber SelectedAuftraggeber
|
|
{
|
|
get => _selectedAuftraggeber;
|
|
set
|
|
{
|
|
if(value != _selectedAuftraggeber)
|
|
{
|
|
_selectedAuftraggeber = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
}
|
|
|
|
public Models.Inspektionsobjekt SelectedSewerObject
|
|
{
|
|
get => _selectedsewerobject;
|
|
set
|
|
{
|
|
if(value != _selectedsewerobject)
|
|
{
|
|
_selectedsewerobject = value;
|
|
OnPropertyChanged();
|
|
CurrentViewModel = new SewerObjectDetailsPageViewModel(SelectedSewerObject);
|
|
}
|
|
}
|
|
}
|
|
|
|
private ViewModelBase _currentViewModel;
|
|
private ViewModelBase _aktuellmenu;
|
|
private IQueryable<Models.Auftraggeber> auftraggeberlist = null;
|
|
|
|
private IAuftraggeberManager auftraggeberManager = null;
|
|
private IBaustelleManager baustellenManager = null;
|
|
|
|
private StandardKernel kernel = null;
|
|
public ViewModelBase CurrentViewModel
|
|
{
|
|
get => _currentViewModel;
|
|
set
|
|
{
|
|
_currentViewModel = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public ViewModelBase AktuellMenu
|
|
{
|
|
get => _aktuellmenu;
|
|
set
|
|
{
|
|
_aktuellmenu = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
void SetMenu(MenuEntries newMenu)
|
|
{
|
|
switch(newMenu)
|
|
{
|
|
case MenuEntries.AUFTRAGGEBER:
|
|
AktuellMenu = new AuftraggeberListPageViewModel(kernel);
|
|
_selectedMenu = MenuEntries.AUFTRAGGEBER;
|
|
break;
|
|
case MenuEntries.BAUVORHABEN:
|
|
AktuellMenu = new BauvorhabenListPageViewModel(kernel,SelectedAuftraggeber);
|
|
_selectedMenu = MenuEntries.BAUVORHABEN;
|
|
break;
|
|
case MenuEntries.INSPEKTIONSOBJEKTE:
|
|
AktuellMenu = new SewerObjectListPageViewModel(kernel, SelectedBauvorhaben, this);
|
|
_selectedMenu = MenuEntries.INSPEKTIONSOBJEKTE;
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public MainWindowViewModel()
|
|
{
|
|
|
|
this.LoadHomePage();
|
|
this.LoadAuftraggeberListPageCommand = new DelegateCommand(o => this.LoadAuftraggeberListPage());
|
|
this.LoadEditAuftraggeberPageCommand = new DelegateCommand(o => this.LoadAuftraggeberEditPage());
|
|
this.LoadHomePageCommand = new DelegateCommand(o => this.LoadHomePage());
|
|
this.LoadSettingsPageCommand = new DelegateCommand(o => this.LoadSettingsPage());
|
|
this.AddNewInspektionsObjektCommand = new DelegateCommand(o => this.AddNewInspektionsObjekt());
|
|
this.NextMenuEntriePageCommand = new DelegateCommand(o => this.NextMenuEntrie());
|
|
|
|
kernel = new StandardKernel();
|
|
new KernelInitializer().Initialize(kernel);
|
|
/*auftraggeberManager = kernel.Get<IAuftraggeberManager>();
|
|
baustellenManager = kernel.Get<IBaustelleManager>();
|
|
|
|
|
|
auftraggeberlist = auftraggeberManager.GetAllAuftraggeber();*/
|
|
|
|
SetMenu(MenuEntries.AUFTRAGGEBER);
|
|
|
|
}
|
|
|
|
private void NextMenuEntrie()
|
|
{
|
|
switch(_selectedMenu)
|
|
{
|
|
case MenuEntries.AUFTRAGGEBER:
|
|
SelectedAuftraggeber = (AktuellMenu as AuftraggeberListPageViewModel).SelectedAuftraggeber;
|
|
SetMenu(MenuEntries.BAUVORHABEN);
|
|
break;
|
|
case MenuEntries.BAUVORHABEN:
|
|
SelectedBauvorhaben = (AktuellMenu as BauvorhabenListPageViewModel).SelectedBauvorhaben;
|
|
SetMenu(MenuEntries.INSPEKTIONSOBJEKTE);
|
|
break;
|
|
case MenuEntries.INSPEKTIONSOBJEKTE:
|
|
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
private void AddNewInspektionsObjekt()
|
|
{
|
|
if (SelectedBauvorhaben.Prüfobjekte == null)
|
|
SelectedBauvorhaben.Prüfobjekte = new List<Models.Inspektionsobjekt>();
|
|
SelectedBauvorhaben.Prüfobjekte.Add(new Models.Inspektionsobjekt());
|
|
auftraggeberManager.Update(SelectedAuftraggeber);
|
|
}
|
|
|
|
private void LoadHomePage()
|
|
{
|
|
|
|
|
|
CurrentViewModel = new HomePageViewModel(
|
|
new HomePage { PageTitle = "This is the Home Page" });
|
|
}
|
|
|
|
private void LoadSettingsPage()
|
|
{
|
|
CurrentViewModel = new SettingsPageViewModel(
|
|
new SettingsPage() { PageTitle = "This is the SettingsPage" });
|
|
//auftraggeberManager.Update(auftraggeberlist.OrderBy(y => y.Id).Last());
|
|
BauvorhabenEditPageViewModel bauvorhaben = new BauvorhabenEditPageViewModel();
|
|
|
|
}
|
|
|
|
private void LoadAuftraggeberEditPage()
|
|
{
|
|
CurrentViewModel = new AuftraggeberEditPageViewModel(auftraggeberManager.GetAllAuftraggeber().OrderBy(y => y.Id).Last(),auftraggeberManager);
|
|
}
|
|
|
|
private void LoadAuftraggeberListPage()
|
|
{
|
|
//CurrentViewModel = new AuftraggeberListPageViewModel(auftraggeberManager);
|
|
}
|
|
}
|
|
}
|