private void demoDatenEinsaetze() { Einsatz e1 = new Einsatz(); e1.ID = 1; e1.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(1); e1.Projekt = Bibliothek.Projekt_nach_ID(1); e1.Start = new DateTime(2016, 6, 7, 8, 0, 0); e1.Ende = new DateTime(2016, 6, 7, 15, 0, 0); Bibliothek.EinsatzNeu(e1); Einsatz e2 = new Einsatz(); e1.ID = 2; e2.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(1); e2.Projekt = Bibliothek.Projekt_nach_ID(2); e2.Start = new DateTime(2016, 6, 10, 11, 0, 0); e2.Ende = new DateTime(2016, 6, 10, 18, 0, 0); Bibliothek.EinsatzNeu(e2); Einsatz e3 = new Einsatz(); e1.ID = 3; e3.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(2); e3.Projekt = Bibliothek.Projekt_nach_ID(1); e3.Start = new DateTime(2016, 6, 14, 10, 0, 0); e3.Ende = new DateTime(2016, 6, 14, 14, 0, 0); Bibliothek.EinsatzNeu(e3); Einsatz e4 = new Einsatz(); e1.ID = 4; e4.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(2); e4.Projekt = Bibliothek.Projekt_nach_ID(1); e4.Start = new DateTime(2016, 6, 15, 10, 0, 0); e4.Ende = new DateTime(2016, 6, 15, 14, 0, 0); Bibliothek.EinsatzNeu(e4); }
/// <summary> /// Diese Methode nimmt die Werte die der Benutzer einegegeben hat und speichert sie in einen Einsatz, /// </summary> /// <param name="e">Einsatz der mit den Werten vom Benutzer gefüllt werden soll</param> private void setzeEinsatz(Einsatz e) { e.ID = einsatz.ID; e.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(this.mitarbeiter.SelectedIndex + 1); e.Projekt = Bibliothek.Projekt_nach_ID(this.projekt.SelectedIndex + 1); e.Farbe = (farbe.Background as SolidColorBrush).Color; setzeDatum(e); }
/// <summary> /// Diese Methode überprüft, dass der aktuelle Einsatz ( ob neu oder geändert ist in diesem Falle egal ) keine Zeitüberschneidung mit einem existierenden Einsatz hat. /// </summary> /// <returns>Gibt False zurück wenn eine Zeitüberschneidung mit einem existierenden Einsatz besteht und True wenn nicht</returns> private bool ueberpruefeZeit() { /* * Es wird ein neuer Einsatz mit den gleichen werten wie der neue oder bearbeitete Einsatz. * Dies ist notwendig da wenn die Daten des aktuellen Einsatzes auf die Werte der eingaben gesezt werden, * müsste mann alle Werte auf die Werte bevor der änderung zurücksetzen wenn ein Wert nicht stimmt. * Mit einem testEinsatz aber ist es egal wie die Werte sind da er einfach gelöscht werden kann. */ Einsatz testEinsatz = new Einsatz(); // testEinsatz wird eine Kopie des aktuellen Einsatzes ohne dabei nur die Referenz zu kopieren. setzeEinsatz(testEinsatz); // Nun wird für jeden Einsatz ausser den aktuellen überprüft, ob eine Zeitüberschneidung besteht. bool keineUeberschneidung = true; Mitarbeiter mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(this.mitarbeiter.SelectedIndex + 1); foreach (Einsatz e in Bibliothek.Einsatz_Alle()) { if (testEinsatz.ID != e.ID) { if (e.Mitarbeiter.ID == mitarbeiter.ID) { if (e.Start.Date == testEinsatz.Start.Date) { /* * Falls der ausgelesene Einsatz nicht dem aktuellen Einsatz entspricht, * der Mitarbeiter gleich ist wie der der in der ComboBox ausgewählt wurde und * der Einsatz am gleichen Tag wie der aktuelle Einsatz statt findet, * wird berprüft das Sie sich nicht überschreiben. */ if ( // Das Startdatum ist gleich wie das Enddatum (testEinsatz.Start != testEinsatz.Ende) || // Das Start oder Enddatum liegt auf dem zu überprüfenden Datum (testEinsatz.Ende > testEinsatz.Start) || (testEinsatz.Start == e.Start || testEinsatz.Ende == e.Ende) || // Das Start und Enddatum liegt zwischen den zu überprüfenden Daten (testEinsatz.Start > e.Start && testEinsatz.Ende < e.Ende) || // Das Startdatum liegt zwischen den zu überprüfenden Daten (testEinsatz.Start > e.Start && testEinsatz.Start < e.Ende) || // Das Enddatum liegt zwischen den zu überprüfenden Daten (testEinsatz.Ende > e.Start && testEinsatz.Ende < e.Ende) || // Das Start und das Enddatum liegen ausserhalb der zu überprüfenden Daten. (testEinsatz.Start < e.Start && testEinsatz.Ende > e.Ende) || // Das Start oder Enddatum liegt ausserhalb des Projekt Zeitraumes. (testEinsatz.Start < testEinsatz.Projekt.StartDatum || testEinsatz.Ende > testEinsatz.Projekt.EndDatum) ) { // Wenn sie sich überschneiden wird ein entsprechender Fehler ausgegeben. MessageBox.Show(Fehler_Zeit_ueberschneidung); keineUeberschneidung = false; } } } } } return(keineUeberschneidung); }
private void btnMit_Handler(object sender, RoutedEventArgs e) { Button myButton = (Button)sender; // Create new Mitarbeiter if (myButton.Tag.ToString() == "new") { Mitarbeiter newMitarbeiter = new Mitarbeiter(); int id; var bool4 = Int32.TryParse(Application.Current.Properties["mit_id"].ToString(), out id); // saved max id to increment newMitarbeiter.ID = id += 1; Application.Current.Properties["mit_id"] = (id += 1).ToString(); newMitarbeiter.Name = this.mitName.Text; newMitarbeiter.Vorname = this.mitVorname.Text; newMitarbeiter.IstAktiv = this.mitAktiv.IsChecked.Value; Bibliothek.Mitarbeiter_Neu(newMitarbeiter); // Employee entry created - show success and reset form this.mitName.Text = ""; this.mitVorname.Text = ""; this.mitAktiv.IsChecked = false; this.success.Text = "Mitarbeiter erfolgrichlich erstellt"; this.success.Visibility = Visibility.Visible; } // Edit Mitarbeiter if (myButton.Tag.ToString() == "edit") { int id; var bool6 = Int32.TryParse(this.btnID.Tag.ToString(), out id); Mitarbeiter mit = Bibliothek.Mitarbeiter_nach_ID(id); mit.Name = this.mitName.Text; mit.Vorname = this.mitVorname.Text; mit.IstAktiv = this.mitAktiv.IsChecked.Value; this.btnID.Tag = ""; // reset edit employee id holder // Employee entry edited - show success and reset form this.mitName.Text = ""; this.mitVorname.Text = ""; this.mitAktiv.IsChecked = false; this.success.Text = "Mitarbeiter erfolgrichlich gearbeitet"; this.success.Visibility = Visibility.Visible; } }
public newEmployee() { InitializeComponent(); // Edit Employee if (Application.Current.Properties["mit_edit_id"] != null) { int mit_id; var bool5 = Int32.TryParse(Application.Current.Properties["mit_edit_id"].ToString(), out mit_id); Mitarbeiter mit = Bibliothek.Mitarbeiter_nach_ID(mit_id); this.mitName.Text = mit.Name; this.mitVorname.Text = mit.Vorname; this.mitAktiv.IsChecked = mit.IstAktiv; this.mitSubmit.Tag = "edit"; // Create hidden button to save employee id this.btnID.Tag = mit_id.ToString(); // Edit window opened and loaded.. reset trigger property Application.Current.Properties["mit_edit_id"] = null; } }
private void btnJob_Handler(object sender, RoutedEventArgs e) { Button myButton = (Button)sender; // Create new Job if (myButton.Tag.ToString() == "new") { Einsatz newJob = new Einsatz(); int id; var bool4 = Int32.TryParse(Application.Current.Properties["job_id"].ToString(), out id); // saved max id to increment newJob.ID = id += 1; Application.Current.Properties["job_id"] = (id += 1).ToString(); newJob.Name = this.jobName.Text; // Get Mitarbeiter und Projekte ID int mit_id; var bool1 = Int32.TryParse((jobMit.SelectedItem as ComboboxItem).Value.ToString(), out mit_id); int proj_id; var bool2 = Int32.TryParse((jobProj.SelectedItem as ComboboxItem).Value.ToString(), out proj_id); newJob.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(mit_id); // Tag has id and save Bibliotek get from id newJob.Projekt = Bibliothek.Projekt_nach_ID(proj_id); newJob.Start = this.jobStart.SelectedDate.Value; newJob.Ende = this.jobEnd.SelectedDate.Value; // check validity bool valid = isValid(newJob, new Einsatz(), false); if (valid == true) { // Create New Job Bibliothek.EinsatzNeu(newJob); // Job Created - show success and reset form this.jobName.Text = ""; this.jobMit.SelectedIndex = 1; this.jobProj.SelectedIndex = 1; this.jobStart.SelectedDate = null; this.jobEnd.SelectedDate = null; this.success.Text = "Einsatz erfolgrichlich erstellt"; this.success.Background = Brushes.LimeGreen; this.success.Visibility = Visibility.Visible; } } // Edit Job if (myButton.Tag.ToString() == "edit") { int id; var bool6 = Int32.TryParse(this.btnID.Tag.ToString(), out id); // Einsatz job = Bibliothek.Einsatz_nach_ID(id); Einsatz job = new Einsatz(); job.Name = this.jobName.Text; // Get Mitarbeiter und Projekte ID int mit_id; var bool1 = Int32.TryParse((jobMit.SelectedItem as ComboboxItem).Value.ToString(), out mit_id); int proj_id; var bool2 = Int32.TryParse((jobProj.SelectedItem as ComboboxItem).Value.ToString(), out proj_id); job.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(mit_id); // Tag has id and save Bibliotek get from id job.Projekt = Bibliothek.Projekt_nach_ID(proj_id); job.Start = this.jobStart.SelectedDate.Value; job.Ende = this.jobEnd.SelectedDate.Value; bool valid = isValid(job, Bibliothek.Einsatz_nach_ID(id), true); if (valid == true) { Einsatz original_job = Bibliothek.Einsatz_nach_ID(id); original_job.Name = this.jobName.Text; // Get Mitarbeiter und Projekte ID int _mit_id; var _bool1 = Int32.TryParse((jobMit.SelectedItem as ComboboxItem).Value.ToString(), out _mit_id); int _proj_id; var _bool2 = Int32.TryParse((jobProj.SelectedItem as ComboboxItem).Value.ToString(), out _proj_id); original_job.Mitarbeiter = Bibliothek.Mitarbeiter_nach_ID(_mit_id); // Tag has id and save Bibliotek get from id original_job.Projekt = Bibliothek.Projekt_nach_ID(_proj_id); original_job.Start = this.jobStart.SelectedDate.Value; original_job.Ende = this.jobEnd.SelectedDate.Value; this.btnID.Tag = ""; // reset edit job id holder // Job Edited - show success and reset form this.jobName.Text = ""; this.jobMit.SelectedIndex = 1; this.jobProj.SelectedIndex = 1; this.jobStart.SelectedDate = null; this.jobEnd.SelectedDate = null; this.success.Text = "Einsatz erfolgrichlich gearbeitet"; this.success.Background = Brushes.LimeGreen; this.success.Visibility = Visibility.Visible; } } }