Listing 4: NeuerPassagierViewModel.cs
Anzeige
using System.ComponentModel;
using System.Collections.ObjectModel;
using WWWings_GO;
using WWWings_SLDienstproxies.WWWingsServer;
using System;
namespace WWWings_SL.Ansichten
{
public partial class NeuerPassagierViewModel : INotifyPropertyChanged
{
/// ################ Befehle ################
public ActionCommand SpeichernCommand { get; set; }
public ActionCommand AbbrechenCommand { get; set; }
/// ################ Ereignisse ################
public event Action<Passagier> NeuerPassagierViewModelExit;
/// ################ Daten (Properties) ################
public Passagier passagier;
public Passagier Passagier // Das neue Passagier-Objekt
{
get { return passagier; }
set { passagier = value; OnPropertyChanged("Passagier"); }
}
public string fehlerMeldung;
public string FehlerMeldung // StatusMeldung nach Speichern
{
get { return fehlerMeldung; }
set { fehlerMeldung = value; OnPropertyChanged("FehlerMeldung"); }
}
/// ################ Konstruktor ################
public NeuerPassagierViewModel()
{
SpeichernCommand = new ActionCommand(Speichern);
AbbrechenCommand = new ActionCommand(Abbrechen);
// Passagier instanziieren
Passagier = new Passagier();
// Nur zum Test
Passagier.Vorname = "Max";
Passagier.Name = "Mustermann";
Passagier.Geburtsdatum = DateTime.Now.Date;
Passagier.PassagierStatus = "A";
}
/// ################ Aktion 1 ################
private void Speichern()
{
// Neuen Passagier speichern
ObservableCollection<Passagier> GeändertePassagiere =
new ObservableCollection<Passagier>() { Passagier };
string Statistik;
BuchungsServiceClient client = new BuchungsServiceClient();
client.SavePassagierSetCompleted +=
new EventHandler<SavePassagierSetCompletedEventArgs>
(client_SavePassagierSetCompleted);
client.SavePassagierSetAsync(GeändertePassagiere);
}
/// ################ Aktion 2 ################
private void client_SavePassagierSetCompleted(object sender,
SavePassagierSetCompletedEventArgs e)
{
if (e.Error == null)
{
var antwort = e.Result;
if (antwort.Count == 1)
{
// Der erste neue Passagier muss der angelegte sein,
// der nun auch die ID enthält!
Passagier = antwort[0];
FehlerMeldung = "";
if (NeuerPassagierViewModelExit != null)
NeuerPassagierViewModelExit(Passagier);
}
}
else
{
FehlerMeldung = e.Error.Message;
if (NeuerPassagierViewModelExit != null)
NeuerPassagierViewModelExit(null);
}
}
void Abbrechen()
{
if (NeuerPassagierViewModelExit != null)
NeuerPassagierViewModelExit(null);
}
/// ################ INotifyPropertyChanged ################
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
}