Kundenedit hinzugefügt
Neue Kunden werden gleich zur Editseite weitergeleitet Kunden können gelöscht werden
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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}" />
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user