AuftraggeberListview intial

This commit is contained in:
2023-07-03 19:15:57 +02:00
parent 287c7aaa0a
commit 33f9da3798
16 changed files with 184 additions and 27 deletions

View File

@@ -19,10 +19,8 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
public async Task<Kanal> Create(Kanal entity)
{
string command = "INSERT INTO " + tableName + " (" +
"objektbezeichnung,ref_startschacht_id,ref_endschacht_id," +
"dn,material,haltungslaenge, entwaesserung,ref_projekt_id) VALUES " +
"(@1,@2,@3,@4,@5,@6,@7,@8) RETURNING haltung_id";
string command = $"INSERT INTO {tableName} (objektbezeichnung,ref_startschacht_id,ref_endschacht_id,dn,material,haltungslaenge, entwaesserung,ref_projekt_id)" +
$"VALUES (@1,@2,@3,@4,@5,@6,@7,@8) RETURNING haltung_id";
using (var cmd = new NpgsqlCommand(command, conn))
{
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);
@@ -56,7 +54,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
ISchachtDataService schachtDataService = new SchachtDataService(connString);
IEnumerable<Schacht> schaechte = await schachtDataService.GetAllByProjekt(projektID);
string command = "SELECT * FROM " + tableName + " WHERE ref_projekt_id = @1";
string command = $"SELECT * FROM {tableName} WHERE ref_projekt_id = @1";
using (var cmd = new NpgsqlCommand(command, conn))
{
cmd.Parameters.AddWithValue("1", projektID);
@@ -103,15 +101,8 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
public async Task<Kanal> Update(Kanal entity)
{
string command = "UPDATE " + tableName + " SET " +
" objektbezeichnung=@1, " +
" ref_startschacht_id=@2, " +
" ref_endschacht_id=@3, " +
" dn=@4, " +
" material=@5, " +
" haltungslaenge=@6, " +
" entwaesserung=@7 " +
" WHERE haltung_id = @8";
string command = $"UPDATE {tableName} SET objektbezeichnung=@1, " +
$"ref_startschacht_id=@2, ref_endschacht_id=@3, dn=@4, material=@5, haltungslaenge=@6, entwaesserung=@7 WHERE haltung_id = @8";
using(var cmd = new NpgsqlCommand(command,conn))
{
cmd.Parameters.AddWithValue("1", entity.Objektbezeichnung);

View File

@@ -21,8 +21,8 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
public async Task<Projekt> Create(Projekt entity)
{
string command = "INSERT INTO "+tableName+" (projektname, erstelldatum, strasse, ort, exporttype, kodierungssystem,ref_auftraggeber_id) " +
"VALUES(@1,@2,@3,@4,@5,@6,@7) RETURNING projekt_id";
string command = $"INSERT INTO {tableName} (projektname, erstelldatum, strasse, ort, exporttype, kodierungssystem,ref_auftraggeber_id) " +
$"VALUES(@1,@2,@3,@4,@5,@6,@7) RETURNING projekt_id";
if (entity.Auftraggeber.Id == 0)
{
@@ -61,7 +61,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
{
Projekt result = new Projekt();
IAuftraggeberDataService auftraggeberDataService = new AuftraggeberDataService(connString);
using (var cmd = new NpgsqlCommand($"SELECT * FROM "+tableName+" WHERE projekt_id = @1", conn))
using (var cmd = new NpgsqlCommand($"SELECT * FROM {tableName} WHERE projekt_id = @1", conn))
{
cmd.Parameters.AddWithValue("1", id);
using var reader = await cmd.ExecuteReaderAsync();
@@ -93,7 +93,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
IEnumerable<Auftraggeber> auftraggebers = await auftraggeberDataService.GetAll();
List<Projekt> result = new List<Projekt>();
using (var cmd = new NpgsqlCommand($"SELECT * FROM " + tableName, conn))
using (var cmd = new NpgsqlCommand($"SELECT * FROM {tableName}", conn))
using (var reader = await cmd.ExecuteReaderAsync())
{
while (reader.Read())
@@ -108,7 +108,7 @@ namespace SewerStammGen.DAL.Services.PostgresqlData
public async Task<Projekt> Update(Projekt entity)
{
string command = "UPDATE "+tableName+ " SET projektname=@1, erstelldatum=@2, strasse=@3, ort=@4, exporttype=@5, kodierungssystem=@6,ref_auftraggeber_id=@7 WHERE projekt_id = @8";
string command = $"UPDATE {tableName} SET projektname=@1, erstelldatum=@2, strasse=@3, ort=@4, exporttype=@5, kodierungssystem=@6,ref_auftraggeber_id=@7 WHERE projekt_id = @8";
using (var cmd = new NpgsqlCommand(command, conn))
{
cmd.Parameters.AddWithValue("1", entity.Projektname);

View File

@@ -0,0 +1,17 @@
using StammGenerator.Interface;
using StammGenerator.ViewModel;
using System.Threading.Tasks;
namespace StammGenerator.Commands
{
internal class AuftraggeberAddCommand: AsyncCommandBase
{
private readonly IActualState actualState;
private readonly IRenavigator renavigator;
public override Task ExecuteAsync(object? parameter)
{
throw new System.NotImplementedException();
}
}
}

View File

@@ -0,0 +1,17 @@
using StammGenerator.Interface;
using StammGenerator.ViewModel;
using System.Threading.Tasks;
namespace StammGenerator.Commands
{
internal class AuftraggeberEditCommand : AsyncCommandBase
{
private readonly IActualState actualState;
private readonly IRenavigator renavigator;
public override Task ExecuteAsync(object? parameter)
{
throw new System.NotImplementedException();
}
}
}

View File

@@ -10,6 +10,7 @@ namespace StammGenerator.Enum
{
Home,
ProjectList,
AuftraggeberList,
SchachtList,
SchachtEdit,
HaltungList,

View File

@@ -60,6 +60,15 @@ namespace StammGenerator.HostBuilders
});
#endregion
#region Auftraggeber
services.AddSingleton<CreateViewModel<AuftraggeberListViewModel>>(services =>
{
return () => new AuftraggeberListViewModel(
services.GetRequiredService<IAuftraggeberDataService>()
);
});
#endregion
#region Haltungen
services.AddSingleton<CreateViewModel<HaltungListViewModel>>(services =>
{

View File

@@ -31,6 +31,10 @@
<view:HaltungEditView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:AuftraggeberListViewModel}">
<view:AuftraggeberListView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodel:ProjektListViewModel}">
<view:ProjektListView />
</DataTemplate>

View File

@@ -7,6 +7,9 @@
</ApplicationDefinition>
</ItemGroup>
<ItemGroup>
<Compile Update="Views\Auftraggeber\AuftraggeberListView.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="Views\Auftraggeber\AuftraggeberShow.xaml.cs">
<SubType>Code</SubType>
</Compile>
@@ -45,6 +48,9 @@
<Page Update="MainWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Views\Auftraggeber\AuftraggeberListView.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Views\Auftraggeber\AuftraggeberShow.xaml">
<SubType>Designer</SubType>
</Page>

View File

@@ -11,7 +11,7 @@ using System.Windows.Input;
namespace StammGenerator.ViewModel
{
class AuftraggeberEditViewModel : BaseViewModel
class AuftraggeberEditFrmViewModel : BaseViewModel
{
Auftraggeber _model;
public string Name
@@ -110,7 +110,7 @@ namespace StammGenerator.ViewModel
base.OnPropertyChanged(propertyName);
}
public AuftraggeberEditViewModel(Auftraggeber model, IAuftraggeberDataService auftraggeberDataService)
public AuftraggeberEditFrmViewModel(Auftraggeber model, IAuftraggeberDataService auftraggeberDataService)
{
_model = model;
_auftraggeberDataService = auftraggeberDataService;

View File

@@ -0,0 +1,52 @@
using SewerStammGen.Shared.Contracts;
using SewerStammGen.Shared.Domain;
using StammGenerator.Commands;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace StammGenerator.ViewModel
{
public class AuftraggeberListViewModel : BaseViewModel
{
private readonly ObservableCollection<Auftraggeber> _auftraggeber;
private readonly IAuftraggeberDataService _auftraggeberDataService;
public Auftraggeber? SelectedAuftraggeber { get; set; }
public ObservableCollection<Auftraggeber> Auftraggeber { get => _auftraggeber; }
public ICommand AddCommand { get; set; }
public ICommand EditCommand { get; set; }
public AuftraggeberListViewModel(IAuftraggeberDataService auftraggeberDataService)
{
_auftraggeber = new ObservableCollection<Auftraggeber>();
_auftraggeberDataService = auftraggeberDataService;
AddCommand = new AuftraggeberAddCommand();
EditCommand = new AuftraggeberEditCommand();
LoadAuftraggeber();
}
private async void LoadAuftraggeber()
{
var auftraggeber = await _auftraggeberDataService.GetAll();
InitCollection(_auftraggeber, auftraggeber);
}
private void InitCollection(ObservableCollection<Auftraggeber> dest, IEnumerable<Auftraggeber> source)
{
dest.Clear();
foreach(var sourceItem in source)
{
dest.Add(sourceItem);
}
}
}
}

View File

@@ -17,6 +17,7 @@ namespace StammGenerator.ViewModel.Factories
private CreateViewModel<HaltungListViewModel> _createHaltungListViewModel;
//private CreateViewModel<SewerConnectorViewModel> _createSewerConnectorViewModel;
private CreateViewModel<ProjektListViewModel> _createProjektListViewModel;
private CreateViewModel<AuftraggeberListViewModel> _createAuftraggeberListViewModel;
public MainWindowViewModelFactory(
CreateViewModel<HomeViewModel> createHomeViewModel,
@@ -24,7 +25,8 @@ namespace StammGenerator.ViewModel.Factories
CreateViewModel<ManholeListViewModel> createManholeListViewModel,
CreateViewModel<HaltungListViewModel> createHaltungListViewModel,
CreateViewModel<ProjektListViewModel> createProjektListViewModel
CreateViewModel<ProjektListViewModel> createProjektListViewModel,
CreateViewModel<AuftraggeberListViewModel> createAuftraggeberListViewModel
)
{
_createHomeViewModel = createHomeViewModel;
@@ -33,6 +35,7 @@ namespace StammGenerator.ViewModel.Factories
_createProjektListViewModel = createProjektListViewModel;
_createManholeListViewModel = createManholeListViewModel;
_createHaltungListViewModel = createHaltungListViewModel;
_createAuftraggeberListViewModel = createAuftraggeberListViewModel;
}
public BaseViewModel CreateViewModel(EMainWindowViewType viewType)
@@ -49,6 +52,8 @@ namespace StammGenerator.ViewModel.Factories
case EMainWindowViewType.ProjectList: return _createProjektListViewModel();
case EMainWindowViewType.AuftraggeberList: return _createAuftraggeberListViewModel();
default:
throw new NotImplementedException();
}

View File

@@ -112,7 +112,7 @@ namespace StammGenerator.ViewModel
private void ChangeAuftraggeber()
{
var win = new AuftraggeberShow();
win.DataContext = new AuftraggeberEditViewModel(_model.Auftraggeber, _auftraggeberDataService);
win.DataContext = new AuftraggeberEditFrmViewModel(_model.Auftraggeber, _auftraggeberDataService);
win.Closed += AuftraggeberWin_Closed;
win.ShowDialog();
@@ -122,7 +122,7 @@ namespace StammGenerator.ViewModel
{
AuftraggeberShow? shw = sender as AuftraggeberShow;
if (shw == null) return;
AuftraggeberEditViewModel? mdl = shw.DataContext as AuftraggeberEditViewModel;
AuftraggeberEditFrmViewModel? mdl = shw.DataContext as AuftraggeberEditFrmViewModel;
if (mdl == null) return;
if (mdl.SelectedAuftraggber == null) return;

View File

@@ -0,0 +1,26 @@
<UserControl x:Class="StammGenerator.Views.AuftraggeberListView"
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:StammGenerator.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<StackPanel>
<DataGrid ItemsSource="{Binding Auftraggeber}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedAuftraggeber}" IsReadOnly="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Ansprechpartner" Binding="{Binding Ansprechpartner}" />
<DataGridTextColumn Header="Strasse" Binding="{Binding Strasse}" />
<DataGridTextColumn Header="PLZ" Binding="{Binding Postleitzahl}" />
<DataGridTextColumn Header="Ort" Binding="{Binding Ort}" />
</DataGrid.Columns>
</DataGrid>
<Button Content="Hinzufügen" Command="{Binding AddCommand}" />
<Button Content="Editieren" Command="{Binding EditCommand}" />
</StackPanel>
</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 StammGenerator.Views
{
/// <summary>
/// Interaktionslogik für AuftraggeberListView.xaml
/// </summary>
public partial class AuftraggeberListView : UserControl
{
public AuftraggeberListView()
{
InitializeComponent();
}
}
}

View File

@@ -15,6 +15,7 @@
<Grid>
<StackPanel>
<RadioButton IsChecked="{Binding CurrentViewModel, Mode=OneWay, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Type viewmodel:HomeViewModel}}" Command="{Binding UpdateCurrentViewModelCommand}" CommandParameter="{x:Static nav:EMainWindowViewType.Home}" Style="{StaticResource ToggleButtonList}" Content="Home" />
<RadioButton IsChecked="{Binding CurrentViewModel, Mode=OneWay, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Type viewmodel:AuftraggeberListViewModel}}" Command="{Binding UpdateCurrentViewModelCommand}" CommandParameter="{x:Static nav:EMainWindowViewType.AuftraggeberList}" Style="{StaticResource ToggleButtonList}" Content="Auftraggeber" />
<RadioButton IsChecked="{Binding CurrentViewModel, Mode=OneWay, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Type viewmodel:ProjektListViewModel}}" Command="{Binding UpdateCurrentViewModelCommand}" CommandParameter="{x:Static nav:EMainWindowViewType.ProjectList}" Style="{StaticResource ToggleButtonList}" Content="Projekte" />
<RadioButton IsChecked="{Binding CurrentViewModel, Mode=OneWay, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Type viewmodel:ManholeListViewModel}}" Command="{Binding UpdateCurrentViewModelCommand}" CommandParameter="{x:Static nav:EMainWindowViewType.SchachtList}" Style="{StaticResource ToggleButtonList}" Content="Schächte" />
<RadioButton IsChecked="{Binding CurrentViewModel, Mode=OneWay, Converter={StaticResource EqualValueToParameterConverter}, ConverterParameter={x:Type viewmodel:HaltungListViewModel}}" Command="{Binding UpdateCurrentViewModelCommand}" CommandParameter="{x:Static nav:EMainWindowViewType.HaltungList}" Style="{StaticResource ToggleButtonList}" Content="Haltungen" />

View File

@@ -8,15 +8,15 @@
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition Width="197*" />
<ColumnDefinition Width="603*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Dateiname" />
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding FileName}" Margin="20,20,20,132" />
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding FileName}" Margin="20,20,20,179" />
<Button Grid.Row="0" Grid.Column="1" Content="Datei wählen" Margin="120,170,200,4" Command="{Binding OpenFileDialogCommand}" />
<Button Grid.Row="1" Grid.ColumnSpan="2" Content="Laden" Command="{Binding LoadFile}" />