oop_II-6/Client/Client/MainWindow.xaml.cs

348 lines
18 KiB
C#

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;
using Xceed.Wpf.Toolkit;
using Client.EHEC_Service;
using AutoMapper;
namespace Client
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Start Automapper
Mapper.Initialize(cfg => cfg.AddProfile<AutomapperProfile>());
try
{ // loading of dropdowns
GetResults();
// check if Server(ping) answers throug a invoke of ButtonOnline_Click
CheckOnline();
}
catch (Exception ex)
{
LabelRueckmeldungsfeld.Content = "Bei der Initialisierung ist ein Fehler passiert.";
System.Diagnostics.Trace.WriteLine(" --e-- Error in Client MainWindow init: " + ex);
}
}
public void GetResults()
{
ComboBoxBakterienstamm.ItemsSource = Global.GlobalInstance.Service.GetResults();
ComboBoxBakterienstamm.DisplayMemberPath = "Name";
}
public void CheckOnline()
{
ButtonOnline.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
}
private void ButtonClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void ButtonSend_Click(object sender, RoutedEventArgs e)
{
LabelRueckmeldungsfeld.Content = "Sende Daten... ";
// wenn die Anzahl im Feld "mehrere Automatisch generieren"
// grösser ist als 0 dann erstelle diese Anzahl automatisch.
// hierzu wird nur die Anzahl an den Server übertragen und
// der Server generiert die Zufallsdatensätze.
DateTime abgabedatum = new DateTime(2018, 9, 15);
string anzahltext = TextboxCreateManyAnzahl.Text.ToString();
bool anzahlbool = int.TryParse(anzahltext, out int anzahl);
if (anzahlbool)
{
if (anzahl < 9999)
{
LabelRueckmeldungsfeld.Content = "Es werden " + anzahl + " Datensätze erstellt...";
bool feedback = false;
try
{
feedback = Global.GlobalInstance.Service.CreateRandomData(Convert.ToInt32(TextboxCreateManyAnzahl.Text));
}
catch (Exception ex)
{
LabelRueckmeldungsfeld.Content = "Fehler in der erzeugung von " + TextboxCreateManyAnzahl.Text + " neuen Einträgen.";
System.Diagnostics.Trace.WriteLine(" --e-- Error in Client CreateRandomData: " + ex);
}
if (feedback == true)
{
LabelRueckmeldungsfeld.Content = "Fertig. " + TextboxCreateManyAnzahl.Text + " neue Einträge gespeichert.";
}
if (feedback == false)
{
LabelRueckmeldungsfeld.Content = "Fehler in der erzeugung von " + TextboxCreateManyAnzahl.Text + " neuen Einträgen.";
}
}
if (anzahl > 9998 && DateTime.UtcNow < abgabedatum)
{
LabelRueckmeldungsfeld.Content = "nei Strathi, me mues me nid " + anzahl + " Datesätz erstelle... ;-) ";
}
if (anzahl > 9998 && DateTime.UtcNow >= abgabedatum)
{
LabelRueckmeldungsfeld.Content = "Das Erstellen von mehr als 9998 Testdatensätze ist nicht erlaubt. ";
}
}
// wenn das Feld "mehrere Automatisch generieren" kleiner ist als 0 dann
// erstelle einzelnen Eintrag auf dem Client.
if (anzahl == 0)
{
try
{
// 1. Doctor
Doctor newDoctor = new Doctor(TextboxArztVorname.Text,
TextboxArztName.Text,
TextboxArztStrasseNr.Text,
TextboxArztPlz.Text,
TextboxArztOrt.Text,
TextboxArztRegion.Text,
TextboxArztKantonsarzt.Text
);
// 2. Patient
Patient newPatient = new Patient(TextboxPatientVorname.Text,
TextboxPatientName.Text,
TextboxPatientStrasseNr.Text,
TextboxPatientPlz.Text,
TextboxPatientOrt.Text,
TextboxPatientRegion.Text,
TextboxPatientGeburtstag.Text
);
// 3. Result
Result newResult = new Result(ComboBoxBakterienstamm.Text);
LabelRueckmeldungsfeld.Content += "erstelle Doktor, ";
newDoctor.CreateDoctor();
LabelArztId.Content = Convert.ToString(newDoctor.Id);
LabelRueckmeldungsfeld.Content += "erstelle Patient, ";
newPatient.CreatePatient();
LabelPatientId.Content = Convert.ToString(newPatient.Id);
LabelRueckmeldungsfeld.Content += "erstelle Bakterie, ";
newResult.CreateResult();
LabelBakterienstamm.Content = Convert.ToString(newResult.Id);
// 4. Exam
Exam newExam = new Exam(newDoctor.Id,
newPatient.Id,
newResult.Id
);
LabelRueckmeldungsfeld.Content += "erstelle Untersuchung, ";
newExam.CreateExam();
City city1 = new City(TextboxNahrung1Ort.Text);
city1.CreateCity();
City city2 = new City(TextboxNahrung2Ort.Text);
city2.CreateCity();
City city3 = new City(TextboxNahrung3Ort.Text);
city3.CreateCity();
City city4 = new City(TextboxNahrung4Ort.Text);
city4.CreateCity();
// 5. Origin
Origin newOrigin1 = new Origin(TextboxNahrung1Restaurant.Text,
TextboxNahrung1Essen.Text,
TextboxNahrung1Strasse.Text,
Convert.ToInt32(TextboxNahrung1Plz.Text),
city1.Id
);
Origin newOrigin2 = new Origin(TextboxNahrung2Restaurant.Text,
TextboxNahrung2Essen.Text,
TextboxNahrung2Strasse.Text,
Convert.ToInt32(TextboxNahrung2Plz.Text),
city2.Id
);
Origin newOrigin3 = new Origin(TextboxNahrung3Restaurant.Text,
TextboxNahrung3Essen.Text,
TextboxNahrung3Strasse.Text,
Convert.ToInt32(TextboxNahrung3Plz.Text),
city3.Id
);
Origin newOrigin4 = new Origin(TextboxNahrung4Restaurant.Text,
TextboxNahrung4Essen.Text,
TextboxNahrung4Strasse.Text,
Convert.ToInt32(TextboxNahrung4Plz.Text),
city4.Id
);
LabelRueckmeldungsfeld.Content += "erstelle Nahrungsaufnahmen.";
newOrigin1.CreateOrigin();
LabelNahrung1Id.Content = Convert.ToString(newOrigin1.Id);
newOrigin2.CreateOrigin();
LabelNahrung2Id.Content = Convert.ToString(newOrigin2.Id);
newOrigin3.CreateOrigin();
LabelNahrung3Id.Content = Convert.ToString(newOrigin3.Id);
newOrigin4.CreateOrigin();
LabelNahrung4Id.Content = Convert.ToString(newOrigin4.Id);
// 6. Origin_Exam
Origin_Exam newOrigin_Exam1 = new Origin_Exam(newOrigin1.Id,
newExam.Id
);
Origin_Exam newOrigin_Exam2 = new Origin_Exam(newOrigin2.Id,
newExam.Id
);
Origin_Exam newOrigin_Exam3 = new Origin_Exam(newOrigin3.Id,
newExam.Id
);
Origin_Exam newOrigin_Exam4 = new Origin_Exam(newOrigin4.Id,
newExam.Id
);
LabelRueckmeldungsfeld.Content += "Verlinke Nahrungsaufnahmen mit der Untersuchungsnummer.";
newOrigin_Exam1.CreateOrigin_Exam();
newOrigin_Exam2.CreateOrigin_Exam();
newOrigin_Exam3.CreateOrigin_Exam();
newOrigin_Exam4.CreateOrigin_Exam();
LabelRueckmeldungsfeld.Content = "Fertig. Behandlung Nr." + Convert.ToString(newExam.Id) + " gespeichert.";
CleanExam();
Global.GlobalInstance.Service.ReloadCluster();
}
catch (Exception ex)
{
LabelRueckmeldungsfeld.Content = "Fehler in der erzeugung dieser Behandlung";
System.Diagnostics.Trace.WriteLine(" --e-- Error in Client Save: " + ex);
}
}
GetResults();
}
private void CleanExam()
{
try
{
TextboxPatientName.Clear();
TextboxPatientVorname.Clear();
TextboxPatientStrasseNr.Clear();
TextboxPatientPlz.Clear();
TextboxPatientOrt.Clear();
TextboxPatientRegion.Clear();
TextboxPatientGeburtstag.Clear();
ComboBoxBakterienstamm.SelectedItem = null; //ItemsControl.ItemsSource
TextboxNahrung1Restaurant.Clear();
TextboxNahrung1Essen.Clear();
TextboxNahrung1Strasse.Clear();
TextboxNahrung1Plz.Clear();
TextboxNahrung1Ort.Clear();
TextboxNahrung2Restaurant.Clear();
TextboxNahrung2Essen.Clear();
TextboxNahrung2Strasse.Clear();
TextboxNahrung2Plz.Clear();
TextboxNahrung2Ort.Clear();
TextboxNahrung3Restaurant.Clear();
TextboxNahrung3Essen.Clear();
TextboxNahrung3Strasse.Clear();
TextboxNahrung3Plz.Clear();
TextboxNahrung3Ort.Clear();
TextboxNahrung4Restaurant.Clear();
TextboxNahrung4Essen.Clear();
TextboxNahrung4Strasse.Clear();
TextboxNahrung4Plz.Clear();
TextboxNahrung4Ort.Clear();
}
catch (Exception ex)
{
LabelRueckmeldungsfeld.Content = "Fehler in der löschung der felder";
System.Diagnostics.Trace.WriteLine(" --e-- Error in Client CleanExam: " + ex);
}
}
private void ButtonAutogenerateOne_Click(object sender, RoutedEventArgs e)
{
try
{
TextboxArztName.Text = new Bogus.DataSets.Name("de_CH").LastName();
TextboxArztVorname.Text = new Bogus.DataSets.Name("de_CH").FirstName();
TextboxArztStrasseNr.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxArztPlz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxArztOrt.Text = new Bogus.DataSets.Address("de_CH").City();
TextboxArztKantonsarzt.Text = Testdata.RandomEnumValue<Testdata.Doctortyp>().ToString();
TextboxArztRegion.Text = new Bogus.DataSets.Address("de_CH").State();
TextboxPatientName.Text = new Bogus.DataSets.Name("de_CH").LastName();
TextboxPatientVorname.Text = new Bogus.DataSets.Name("de_CH").FirstName();
TextboxPatientStrasseNr.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxPatientPlz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxPatientOrt.Text = new Bogus.DataSets.Address("de_CH").City();
TextboxPatientRegion.Text = new Bogus.DataSets.Address("de_CH").State();
TextboxPatientGeburtstag.Text = new Bogus.DataSets.Date().Past().ToString();
ComboBoxBakterienstamm.Text = "bacteriaName";
TextboxNahrung1Restaurant.Text = Testdata.RandomEnumValue<Testdata.RestaurantPre>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.RestaurantName>().ToString();
TextboxNahrung1Essen.Text = Testdata.RandomEnumValue<Testdata.Vegie>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.Vegie>().ToString();
TextboxNahrung1Strasse.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxNahrung1Plz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxNahrung1Ort.Text = new Bogus.DataSets.Address("de_CH").City();
TextboxNahrung2Restaurant.Text = Testdata.RandomEnumValue<Testdata.RestaurantPre>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.RestaurantName>().ToString();
TextboxNahrung2Essen.Text = Testdata.RandomEnumValue<Testdata.Vegie>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.Vegie>().ToString();
TextboxNahrung1Strasse.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxNahrung2Plz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxNahrung2Ort.Text = new Bogus.DataSets.Address("de_CH").City();
TextboxNahrung3Restaurant.Text = Testdata.RandomEnumValue<Testdata.RestaurantPre>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.RestaurantName>().ToString();
TextboxNahrung3Essen.Text = Testdata.RandomEnumValue<Testdata.Vegie>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.Vegie>().ToString();
TextboxNahrung3Strasse.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxNahrung3Plz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxNahrung3Ort.Text = new Bogus.DataSets.Address("de_CH").City();
TextboxNahrung4Restaurant.Text = Testdata.RandomEnumValue<Testdata.RestaurantPre>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.RestaurantName>().ToString();
TextboxNahrung4Essen.Text = Testdata.RandomEnumValue<Testdata.Vegie>().ToString() +
" " + Testdata.RandomEnumValue<Testdata.Vegie>().ToString();
TextboxNahrung4Strasse.Text = new Bogus.DataSets.Address("de_CH").StreetName();
TextboxNahrung4Plz.Text = new Bogus.DataSets.Address("de_CH").ZipCode();
TextboxNahrung4Ort.Text = new Bogus.DataSets.Address("de_CH").City();
}
catch (Exception ex)
{
LabelRueckmeldungsfeld.Content = "Fehler in der löschung der felder";
System.Diagnostics.Trace.WriteLine(" --e-- Error in Client Auto One: " + ex);
}
}
private void ButtonOnline_Click(object sender, RoutedEventArgs e)
{
try
{
string con = Global.GlobalInstance.Service.Ping();
if (con == "pong")
{
ButtonOnline.Content = "online";
ButtonOnline.Foreground = Brushes.Green;
}
}
catch (Exception)
{
ButtonOnline.Content = "offline";
ButtonOnline.Foreground = Brushes.Red;
}
}
}
}