示例#1
0
        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);
        }
示例#2
0
 /// <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);
 }
示例#3
0
        /// <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;
                }
            }
        }