Durchlaufene Menu erzeugt

This commit is contained in:
HuskyTeufel
2022-05-30 17:04:24 +02:00
parent 455f57fd35
commit 7bf5d1ad05
16 changed files with 303 additions and 22 deletions

Submodule DataGen updated: 6ac7c63d51...f963a7170c

View File

@@ -0,0 +1,15 @@
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DichtheitManagement.Contract
{
public interface IInspektionsObjectManager
{
void Add(Inspektionsobjekt inspektionsobjekt);
List<Inspektionsobjekt> GetInspektionsobjekt(Bauvorhaben bauvorhaben);
}
}

View File

@@ -19,7 +19,7 @@ namespace DichtheitManagement
public IQueryable<Auftraggeber> GetAllAuftraggeber() public IQueryable<Auftraggeber> GetAllAuftraggeber()
{ {
return _repository.Get(includeProperties: "Baustellen,Baustellen.Prüfobjekte").Where(p => p.Id >= 0); return _repository.Get().Where(p => p.Id >= 0);
} }
public void Update(Auftraggeber update) public void Update(Auftraggeber update)

View File

@@ -0,0 +1,29 @@
using DataStoring.Contract;
using DichtheitManagement.Contract;
using Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DichtheitManagement
{
public class InspektionsObjectManager : IInspektionsObjectManager
{
private readonly IRepository<Inspektionsobjekt> _repository;
public InspektionsObjectManager(IRepository<Inspektionsobjekt> repository)
{
_repository = repository;
}
public void Add(Inspektionsobjekt inspektionsobjekt)
{
throw new NotImplementedException();
}
public List<Inspektionsobjekt> GetInspektionsobjekt(Bauvorhaben bauvorhaben)
{
return _repository.Get().Where(s => s.Bauvorhaben == bauvorhaben).ToList();
}
}
}

View File

@@ -11,9 +11,15 @@
<Compile Update="Views\BauvorhabenEditPageView.xaml.cs"> <Compile Update="Views\BauvorhabenEditPageView.xaml.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Update="Views\BauvorhabenListPageView.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="Views\SewerObjectDetailsPageView.xaml.cs"> <Compile Update="Views\SewerObjectDetailsPageView.xaml.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Update="Views\SewerObjectListPageView.xaml.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Page Update="Views\AuftraggeberListPageView.xaml"> <Page Update="Views\AuftraggeberListPageView.xaml">
@@ -25,8 +31,14 @@
<Page Update="Views\BauvorhabenEditPageView.xaml"> <Page Update="Views\BauvorhabenEditPageView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Update="Views\BauvorhabenListPageView.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Views\SewerObjectDetailsPageView.xaml"> <Page Update="Views\SewerObjectDetailsPageView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Update="Views\SewerObjectListPageView.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -15,9 +15,17 @@
<DataTemplate DataType="{x:Type viewmodel:SettingsPageViewModel}"> <DataTemplate DataType="{x:Type viewmodel:SettingsPageViewModel}">
<views:SettingsPageView /> <views:SettingsPageView />
</DataTemplate> </DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:AuftraggeberListPageViewModel}"> <DataTemplate DataType="{x:Type viewmodel:AuftraggeberListPageViewModel}">
<views:AuftraggeberListPageView /> <views:AuftraggeberListPageView />
</DataTemplate> </DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:BauvorhabenListPageViewModel}">
<views:BauvorhabenListPageView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:SewerObjectListPageViewModel}">
<views:SewerObjectListPageView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:AuftraggeberEditPageViewModel}"> <DataTemplate DataType="{x:Type viewmodel:AuftraggeberEditPageViewModel}">
<views:AuftraggeberEditPage /> <views:AuftraggeberEditPage />
</DataTemplate> </DataTemplate>
@@ -33,9 +41,14 @@
<Button Content="Settings Page" Command="{Binding Path=LoadSettingsPageCommand}" /> <Button Content="Settings Page" Command="{Binding Path=LoadSettingsPageCommand}" />
<Button Content="Neue Prüfobjekt hinzufügen" Command="{Binding Path=AddNewInspektionsObjektCommand}" /> <Button Content="Neue Prüfobjekt hinzufügen" Command="{Binding Path=AddNewInspektionsObjektCommand}" />
</StackPanel> </StackPanel>
<ListBox Name="Auftraggeber" ItemsSource="{Binding Path=AuftraggeberListe}" SelectedItem="{Binding Path=SelectedAuftraggeber}" /> <StackPanel DockPanel.Dock="Left" Width="306">
<Button Content="Next" Command="{Binding Path=NextMenuEntriePageCommand}" />
<Button Content="Back" />
<ContentControl Content="{Binding Path=AktuellMenu}" />
</StackPanel>
<!--<ListBox Name="Auftraggeber" ItemsSource="{Binding Path=AuftraggeberListe}" SelectedItem="{Binding Path=SelectedAuftraggeber}" />
<ListBox Name="Baustellen" ItemsSource="{Binding Path=BauvorhabenListe}" SelectedItem="{Binding Path=SelectedBauvorhaben}" /> <ListBox Name="Baustellen" ItemsSource="{Binding Path=BauvorhabenListe}" SelectedItem="{Binding Path=SelectedBauvorhaben}" />
<ListBox Name="Prüfobjekte" ItemsSource="{Binding Path=InspektionsobjekteListe}" SelectedItem="{Binding Path=SelectedSewerObject}" /> <ListBox Name="Prüfobjekte" ItemsSource="{Binding Path=InspektionsobjekteListe}" SelectedItem="{Binding Path=SelectedSewerObject}" />-->
<ContentControl Content="{Binding Path=CurrentViewModel}" /> <ContentControl Content="{Binding Path=CurrentViewModel}" />
</DockPanel> </DockPanel>
</Window> </Window>

View File

@@ -1,4 +1,6 @@
using DichtheitManagement.Contract; using DichtheitManagement.Contract;
using Models;
using Ninject;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@@ -10,22 +12,18 @@ namespace GuiWPF.ViewModel
public class AuftraggeberListPageViewModel : ViewModelBase public class AuftraggeberListPageViewModel : ViewModelBase
{ {
private IAuftraggeberManager auftraggeberManager; private IAuftraggeberManager auftraggeberManager;
private StandardKernel kernel;
public Auftraggeber SelectedAuftraggeber { get; set; }
public List<Models.Auftraggeber> Auftraggeberlist { get; set; } public List<Models.Auftraggeber> Auftraggeberlist { get; set; }
/*public AuftraggeberListPageViewModel(IQueryable<Models.Auftraggeber> auftraggeberlist)
{
Auftraggeberlist = auftraggeberlist.ToList();
Auftraggeberlist.Last().Name = "Damian";
} public AuftraggeberListPageViewModel(StandardKernel kernel)
*/
public AuftraggeberListPageViewModel(IAuftraggeberManager auftraggeberManager)
{ {
this.auftraggeberManager = auftraggeberManager; this.kernel = kernel;
auftraggeberManager = kernel.Get<IAuftraggeberManager>();
Auftraggeberlist = auftraggeberManager.GetAllAuftraggeber().ToList(); Auftraggeberlist = auftraggeberManager.GetAllAuftraggeber().ToList();
//Auftraggeberlist.Last().Name = "Damian";
} }
} }
} }

View File

@@ -0,0 +1,23 @@
using DichtheitManagement.Contract;
using Models;
using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GuiWPF.ViewModel
{
internal class BauvorhabenListPageViewModel : ViewModelBase
{
public List<Bauvorhaben> BauvorhabenList { get; set; }
public Bauvorhaben SelectedBauvorhaben { get; set; }
public BauvorhabenListPageViewModel(StandardKernel kernel,Auftraggeber auftraggeber)
{
var BauvorhabenManager = kernel.Get<IBaustelleManager>();
BauvorhabenList = BauvorhabenManager.GetBauvorhaben(auftraggeber);
}
}
}

View File

@@ -1,8 +1,10 @@
using DichtheitManagement.Contract; using DichtheitManagement.Contract;
using Mappings; using Mappings;
using Models;
using Ninject; using Ninject;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -10,20 +12,28 @@ using System.Windows.Input;
namespace GuiWPF.ViewModel namespace GuiWPF.ViewModel
{ {
enum MenuEntries
{
AUFTRAGGEBER = 0,
BAUVORHABEN = 1,
INSPEKTIONSOBJEKTE = 2
}
public class MainWindowViewModel : ViewModelBase public class MainWindowViewModel : ViewModelBase
{ {
private MenuEntries _selectedMenu;
public ICommand LoadHomePageCommand { get; private set; } public ICommand LoadHomePageCommand { get; private set; }
public ICommand LoadSettingsPageCommand { get; private set;} public ICommand LoadSettingsPageCommand { get; private set;}
public ICommand LoadAuftraggeberListPageCommand { get; private set; } public ICommand LoadAuftraggeberListPageCommand { get; private set; }
public ICommand LoadEditAuftraggeberPageCommand { get; private set; } public ICommand LoadEditAuftraggeberPageCommand { get; private set; }
public ICommand AddNewInspektionsObjektCommand { get; private set; } public ICommand AddNewInspektionsObjektCommand { get; private set; }
public ICommand NextMenuEntriePageCommand { get; set; }
private Models.Auftraggeber _selectedAuftraggeber; private Models.Auftraggeber _selectedAuftraggeber;
private Models.Bauvorhaben _selectedBauvorhaben; private Models.Bauvorhaben _selectedBauvorhaben;
private Models.Inspektionsobjekt _selectedsewerobject; private Models.Inspektionsobjekt _selectedsewerobject;
public List<Models.Auftraggeber> AuftraggeberListe { get => auftraggeberlist.ToList(); }
public List<Models.Bauvorhaben> BauvorhabenListe public List<Models.Bauvorhaben> BauvorhabenListe
{ {
get get
@@ -76,8 +86,6 @@ namespace GuiWPF.ViewModel
{ {
_selectedAuftraggeber = value; _selectedAuftraggeber = value;
OnPropertyChanged(); OnPropertyChanged();
BauvorhabenListe.Clear();
BauvorhabenListe = baustellenManager.GetBauvorhaben(SelectedAuftraggeber);
} }
} }
} }
@@ -97,6 +105,7 @@ namespace GuiWPF.ViewModel
} }
private ViewModelBase _currentViewModel; private ViewModelBase _currentViewModel;
private ViewModelBase _aktuellmenu;
private IQueryable<Models.Auftraggeber> auftraggeberlist = null; private IQueryable<Models.Auftraggeber> auftraggeberlist = null;
private IAuftraggeberManager auftraggeberManager = null; private IAuftraggeberManager auftraggeberManager = null;
@@ -113,25 +122,79 @@ namespace GuiWPF.ViewModel
} }
} }
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() public MainWindowViewModel()
{ {
this.LoadHomePage(); this.LoadHomePage();
this.LoadAuftraggeberListPageCommand = new DelegateCommand(o => this.LoadAuftraggeberListPage()); this.LoadAuftraggeberListPageCommand = new DelegateCommand(o => this.LoadAuftraggeberListPage());
this.LoadEditAuftraggeberPageCommand = new DelegateCommand(o => this.LoadAuftraggeberEditPage()); this.LoadEditAuftraggeberPageCommand = new DelegateCommand(o => this.LoadAuftraggeberEditPage());
this.LoadHomePageCommand = new DelegateCommand(o => this.LoadHomePage()); this.LoadHomePageCommand = new DelegateCommand(o => this.LoadHomePage());
this.LoadSettingsPageCommand = new DelegateCommand(o => this.LoadSettingsPage()); this.LoadSettingsPageCommand = new DelegateCommand(o => this.LoadSettingsPage());
this.AddNewInspektionsObjektCommand = new DelegateCommand(o => this.AddNewInspektionsObjekt()); this.AddNewInspektionsObjektCommand = new DelegateCommand(o => this.AddNewInspektionsObjekt());
this.NextMenuEntriePageCommand = new DelegateCommand(o => this.NextMenuEntrie());
kernel = new StandardKernel(); kernel = new StandardKernel();
new KernelInitializer().Initialize(kernel); new KernelInitializer().Initialize(kernel);
auftraggeberManager = kernel.Get<IAuftraggeberManager>(); /*auftraggeberManager = kernel.Get<IAuftraggeberManager>();
baustellenManager = kernel.Get<IBaustelleManager>(); baustellenManager = kernel.Get<IBaustelleManager>();
auftraggeberlist = auftraggeberManager.GetAllAuftraggeber(); 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() private void AddNewInspektionsObjekt()
{ {
if (SelectedBauvorhaben.Prüfobjekte == null) if (SelectedBauvorhaben.Prüfobjekte == null)
@@ -164,7 +227,7 @@ namespace GuiWPF.ViewModel
private void LoadAuftraggeberListPage() private void LoadAuftraggeberListPage()
{ {
CurrentViewModel = new AuftraggeberListPageViewModel(auftraggeberManager); //CurrentViewModel = new AuftraggeberListPageViewModel(auftraggeberManager);
} }
} }
} }

View File

@@ -0,0 +1,47 @@
using DichtheitManagement.Contract;
using Models;
using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GuiWPF.ViewModel
{
internal class SewerObjectListPageViewModel : ViewModelBase
{
private StandardKernel kernel;
private Bauvorhaben selectedBauvorhaben;
private MainWindowViewModel mainWindowViewModel;
private Inspektionsobjekt _selectedSewer;
public List<Inspektionsobjekt> SewerObjects { get; set; }
public Inspektionsobjekt SelectedSewer
{
get => _selectedSewer;
set
{
if(_selectedSewer != value)
{
_selectedSewer = value;
mainWindowViewModel.SelectedSewerObject = _selectedSewer;
OnPropertyChanged();
}
}
}
public SewerObjectListPageViewModel(StandardKernel kernel, Bauvorhaben selectedBauvorhaben, MainWindowViewModel mainWindowViewModel)
{
this.kernel = kernel;
this.selectedBauvorhaben = selectedBauvorhaben;
this.mainWindowViewModel = mainWindowViewModel;
IInspektionsObjectManager manager = kernel.Get<IInspektionsObjectManager>();
SewerObjects = manager.GetInspektionsobjekt(selectedBauvorhaben);
}
}
}

View File

@@ -10,6 +10,6 @@
<Grid> <Grid>
<Label>Auftraggebers</Label> <Label>Auftraggebers</Label>
<ListBox ItemsSource="{Binding Auftraggeberlist}"></ListBox> <ListBox ItemsSource="{Binding Auftraggeberlist}" SelectedItem="{Binding Path=SelectedAuftraggeber}"></ListBox>
</Grid> </Grid>
</UserControl> </UserControl>

View File

@@ -0,0 +1,12 @@
<UserControl x:Class="GuiWPF.Views.BauvorhabenListPageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:GuiWPF.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<ListBox ItemsSource="{Binding BauvorhabenList}" SelectedItem="{Binding SelectedBauvorhaben}" />
</Grid>
</UserControl>

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace GuiWPF.Views
{
/// <summary>
/// Interaction logic for BauvorhabenListPageView.xaml
/// </summary>
public partial class BauvorhabenListPageView : UserControl
{
public BauvorhabenListPageView()
{
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,12 @@
<UserControl x:Class="GuiWPF.Views.SewerObjectListPageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:GuiWPF.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<ListBox ItemsSource="{Binding Path=SewerObjects}" SelectedItem="{Binding Path=SelectedSewer}" />
</Grid>
</UserControl>

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace GuiWPF.Views
{
/// <summary>
/// Interaction logic for SewerObjectListPageView.xaml
/// </summary>
public partial class SewerObjectListPageView : UserControl
{
public SewerObjectListPageView()
{
InitializeComponent();
}
}
}

View File

@@ -15,6 +15,7 @@ namespace Mappings
kernel.Bind(typeof(IRepository<>)).To(typeof(Repository<>)); kernel.Bind(typeof(IRepository<>)).To(typeof(Repository<>));
kernel.Bind<IAuftraggeberManager>().To<AuftraggeberManager>(); kernel.Bind<IAuftraggeberManager>().To<AuftraggeberManager>();
kernel.Bind<IBaustelleManager>().To<BaustelleManager>(); kernel.Bind<IBaustelleManager>().To<BaustelleManager>();
kernel.Bind<IInspektionsObjectManager>().To<InspektionsObjectManager>();
} }
} }
} }