Kundenedit hinzugefügt

Neue Kunden werden gleich zur Editseite weitergeleitet

Kunden können gelöscht werden
This commit is contained in:
HuskyTeufel
2021-08-31 12:25:27 +02:00
parent 7911a44f2f
commit c66751ddc5
9 changed files with 76 additions and 90 deletions

View File

@@ -21,7 +21,7 @@ namespace KanSan.Base
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseNpgsql("Host = localhost; Database = kanSan; Username = kansan; Password = kansan");
optionsBuilder.UseNpgsql("Host = 192.168.122.1; Database = kanSan; Username = kansan; Password = kansan");
//optionsBuilder.UseSqlite("Data Source=kansan.db");
}
}

View File

@@ -1,11 +1,14 @@
using KanSan.Base;
using KanSan.Base.Interfaces;
using KanSan.Base.Models;
using KanSan.ViewModel.Commands;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Input;
namespace KanSan.ViewModel
{
@@ -20,6 +23,9 @@ namespace KanSan.ViewModel
private string plz;
private string ort;
public ICommand SaveClient { get; set; }
public ICommand RemoveClient { get; set; }
#region getters
public string Vorname
{
@@ -88,22 +94,30 @@ namespace KanSan.ViewModel
}
#endregion
public KundenEditViewModel(Kunde kunde = null)
public KundenEditViewModel(Kunde kunde)
{
if (kunde == null)
_kunde = unitOfWork.KundenRepository.Get().First();
else
_kunde = kunde;
_kunde = kunde;
vorname = _kunde.Vorname;
nachname = _kunde.Nachname;
strasse = _kunde.Strasse;
plz = _kunde.PLZ;
ort = _kunde.Ort;
SaveClient = new RelayCommand(parameter => Speichern());
RemoveClient = new RelayCommand(parameter => Remove());
}
public void Speichern()
private void Remove()
{
unitOfWork.KundenRepository.Delete(_kunde);
unitOfWork.Commit();
Mediator.Notify("GoToListClientScreen");
}
private void Speichern()
{
Trace.WriteLine("Speichere");
_kunde.Vorname = Vorname;
_kunde.Nachname = Nachname;
_kunde.Strasse = Strasse;
@@ -112,6 +126,7 @@ namespace KanSan.ViewModel
unitOfWork.KundenRepository.Update(_kunde);
unitOfWork.Commit();
Mediator.Notify("GoToListClientScreen");
}
}
}

View File

@@ -17,7 +17,16 @@ namespace KanSan.ViewModel
IUnitOfWork unitOfWork = new UnitOfWork(new KanSanContext());
private List<Kunde> kunden;
private Kunde selectedKunde;
public Kunde SelectedKunde {
get { return selectedKunde; }
set {
selectedKunde = value;
}
}
public ICommand AddNewClientCommand { get; set; }
public ICommand EditClientCommand { get; set; }
public List<Kunde> Kunden
{
@@ -31,23 +40,33 @@ namespace KanSan.ViewModel
{
kunden = unitOfWork.KundenRepository.Get().ToList();
AddNewClientCommand = new RelayCommand(parameter => NeueKunde());
AddNewClientCommand = new RelayCommand(parameter => NewClient());
EditClientCommand = new RelayCommand(parameter => EditClient());
}
public Kunde NeueKunde()
private void NewClient()
{
Kunde result = new Kunde();
//result.ID = 1;
result.GuidNr = Guid.NewGuid();
Kunde newClient = NeueKunde();
Mediator.Notify("GoToEditClientScreen", newClient);
}
private void EditClient()
{
if (SelectedKunde == null) return;
Mediator.Notify("GoToEditClientScreen",selectedKunde);
}
private Kunde NeueKunde()
{
Kunde result = new Kunde()
{
GuidNr = Guid.NewGuid()
};
unitOfWork.KundenRepository.Insert(result);
unitOfWork.Commit();
return result;
//IEnumerable<Kunde> kunden = unitOfWork.KundenRepository.Get(d => d.GuidNr.Equals(result.GuidNr));
//if (kunden.Count() < 1)
// throw new Exception("Kunde konnte nicht gefunden werden");
//return kunden.First();
}
}
}

View File

@@ -241,11 +241,19 @@ namespace KanSan.ViewModel
ListBaustellenCommand = new RelayCommand(paramter => ListBaustellen());
ListObjectsCommand = new RelayCommand(parameter => ListObjekte());
Mediator.Subscribe("GoTo1Screen", OnGo1Screen);
Mediator.Subscribe("GoToListClientScreen", OnGoToListClientScreen);
Mediator.Subscribe("GoToEditClientScreen", OnGoToEditClientScreen);
}
private void OnGo1Screen(object obj)
private void OnGoToEditClientScreen(object obj)
{
if (!(obj is Kunde)) return;
Kunde client = (obj as Kunde);
EditClient(client);
}
private void OnGoToListClientScreen(object obj)
{
ListClients();
}
@@ -263,6 +271,10 @@ namespace KanSan.ViewModel
{
ActualViewModel = new KundenListViewModel();
}
private void EditClient(Kunde client)
{
ActualViewModel = new KundenEditViewModel(client);
}
private void ListProjekte()
{

View File

@@ -14,6 +14,7 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
@@ -26,7 +27,8 @@
<Label Grid.Column="0" Grid.Row="3">Plz</Label>
<Label Grid.Column="0" Grid.Row="4">Ort</Label>
<Button Name="Speichern" Content="Speichern" Grid.Row="5" Grid.ColumnSpan="2" Click="Speichern_Click" />
<Button Name="Speichern" Content="Speichern" Grid.Row="5" Grid.ColumnSpan="2" Command="{Binding SaveClient}" />
<Button Content="Löschen" Grid.Row="6" Grid.ColumnSpan="2" Command="{Binding RemoveClient}" />
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Vorname}" />
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Nachname}" />

View File

@@ -22,30 +22,9 @@ namespace KanSan.UI
/// </summary>
public partial class UCKundeEdit : UserControl
{
public event EventHandler SpeichernClicked;
protected virtual void OnSpeichernKlicked(EventArgs e)
{
EventHandler handler = SpeichernClicked;
if (handler != null)
handler(this, e);
}
//private Kunde kunde = null;
//private UnitOfWork unitOfWork = null;
public UCKundeEdit(Kunde kunde = null)
public UCKundeEdit()
{
InitializeComponent();
this.DataContext = new KundenEditViewModel(kunde);
}
private void Speichern_Click(object sender, RoutedEventArgs e)
{
((KundenEditViewModel)DataContext).Speichern();
OnSpeichernKlicked(EventArgs.Empty);
}
}
}

View File

@@ -17,15 +17,15 @@
<RowDefinition Height="50"/>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<DataGrid AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding Kunden}" Name="dgKundenList">
<DataGrid IsReadOnly="True" AutoGenerateColumns="False" SelectionMode="Single" SelectedItem="{Binding SelectedKunde, Mode=TwoWay}" ItemsSource="{Binding Kunden}" Name="dgKundenList">
<DataGrid.Columns>
<DataGridTextColumn Header="Vorname" Binding="{Binding Vorname}" />
<DataGridTextColumn Header="Nachname" Binding="{Binding Nachname}" />
<DataGridTextColumn Header="Ort" Binding="{Binding Ort}" />
</DataGrid.Columns>
</DataGrid>
<Button Grid.Row="1" Name="SelectKunde" Content="Kunde Auswählen" Click="SelectKunde_Click" />
<Button Grid.Row="2" Name="EditKunde" Content="Kunde Editieren" Click="EditKunde_Click" />
<Button Grid.Row="1" Name="SelectKunde" Content="Kunde Auswählen" />
<Button Grid.Row="2" Name="EditKunde" Content="Kunde Editieren" Command="{Binding EditClientCommand}" />
<Button Grid.Row="3" Name="NeueKunde" Content="Neue Kunde anlegen" Command="{Binding AddNewClientCommand}" />
</Grid>

View File

@@ -21,54 +21,10 @@ namespace KanSan.UI
/// </summary>
public partial class UCKundeList : UserControl
{
public event EventHandler<KundeAddedKlickEventArgs> KundeAdded;
public event EventHandler<KundeAddedKlickEventArgs> KundeSelect;
public UCKundeList()
{
InitializeComponent();
this.DataContext = new KundenListViewModel();
}
private void NeueKunde_Click(object sender, RoutedEventArgs e)
{
KundeAddedKlickEventArgs args = new KundeAddedKlickEventArgs();
args.kunde = (DataContext as KundenListViewModel).NeueKunde();
OnClickKundeAdded(args);
}
protected virtual void OnClickKundeAdded(KundeAddedKlickEventArgs e)
{
EventHandler<KundeAddedKlickEventArgs> handler = KundeAdded;
if (handler != null)
handler(this, e);
}
protected virtual void OnClickSelectedKunde(KundeAddedKlickEventArgs e)
{
EventHandler<KundeAddedKlickEventArgs> handler = KundeSelect;
if (handler != null)
handler(this, e);
}
private void EditKunde_Click(object sender, RoutedEventArgs e)
{
Kunde selectedKunde = (dgKundenList.SelectedItem as Kunde);
if (selectedKunde == null) return;
OnClickKundeAdded(new KundeAddedKlickEventArgs() { kunde = selectedKunde });
}
private void SelectKunde_Click(object sender, RoutedEventArgs e)
{
Kunde selectedKunde = (dgKundenList.SelectedItem as Kunde);
if (selectedKunde == null) return;
OnClickSelectedKunde(new KundeAddedKlickEventArgs() { kunde = selectedKunde });
}
}
public class KundeAddedKlickEventArgs : EventArgs
{
public Kunde kunde { get; set; }
}
}

View File

@@ -9,6 +9,9 @@
<DataTemplate DataType="{x:Type vm:KundenListViewModel}">
<l:UCKundeList/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:KundenEditViewModel}">
<l:UCKundeEdit/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ProjektListViewModel}">
<l:UCProjektList/>
</DataTemplate>