private void SchuelerdatenAnnehmenButton_Click(object sender, RoutedEventArgs e)
 {
     if (schuelerCollection != null && schuelerCollection.Count > 0)
     {
         try
         {
             loadAllScheulerInKartei();
             VerteilungskriteriumGUI verteilungskriteriumGUI = new VerteilungskriteriumGUI();
             verteilungskriteriumGUI.Show();
             this.Close();
         }
         catch (ArgumentOutOfRangeException exception)
         {
             if (exception.ParamName.Equals("Geschlecht"))
             {
                 Schueler s = (Schueler)exception.ActualValue;
                 MessageBox.Show("Der Schüler " + s.name + ", " + s.vorname + " hat ein ungültiges Geschlecht. Nur m und w sind gültige Werte.");
             }
             if (exception.ParamName.Equals("Leer"))
             {
                 MessageBox.Show("Ein oder mehrere Schüler sind nicht vollständig ausgefüllt.");
             }
         }
     }
     else
     {
         MessageBox.Show("Bitte fügen Sie Schüler hinzu");
     }
 }
 public void setzeSchueler(Schueler schueler, int position)
 {
     if (position < this.sitzplaetze.Count())
     {
         sitzplaetze[position] = schueler;
     }
 }
        //tauschen mit Positionangaben --> wird benötigt Schüler auf bisher unbesetzte Plätze (null) zu verschieben
        public void tauschePlaetze(int tischA, int platzA, int tischB, int platzB)
        {
            Schueler speicher = this.tischgruppen[tischA].getSitzplaetze()[platzA];

            this.tischgruppen[tischA].setzeSchueler(this.tischgruppen[tischB].getSitzplaetze()[platzB], platzA);
            this.tischgruppen[tischB].setzeSchueler(speicher, platzB);
        }
        private void setKlassennummer()
        {
            List <Schueler> schuelerListe = sk.getSchuelerListe();
            Schueler        schueler      = schuelerListe[1];

            klasse             = schueler.klasse;
            Klassennummer.Text = klasse;
        }
        private void schuelerGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var dg = sender as DataGrid;

            if (dg == null)
            {
                return;
            }
            var index     = dg.SelectedIndex;
            var itemCount = dg.Items.Count;

            if (index != -1 && index != (itemCount - 1))
            {
                DataGridRow row = dg.ItemContainerGenerator.ContainerFromIndex(index) as DataGridRow;
                selectedSchueler = (Schueler)dg.ItemContainerGenerator.ItemFromContainer(row);
            }
        }
 private SortedList <String, int> sitzNachbarnbestimmen(Sitzplan sitzplan, Schueler schuelerAusListe, SortedList <String, int> sitznachbarn)
 {
     foreach (Tischgruppe tischgruppe in sitzplan.getTischgruppen())
     {
         int sitzposition = tischgruppe.getSitzplaetze().IndexOf(schuelerAusListe);
         if (sitzposition >= 0)
         {
             //0 sitzt neben 1
             if (sitzposition == 0)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[1]);
             }
             //1 sitzt neben 0 und 2
             if (sitzposition == 1)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[2]);
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[0]);
             }
             //2 sitzt neben 1 und 3
             if (sitzposition == 2)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[1]);
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[3]);
             }
             //3 sitzt neben 4 und 2
             if (sitzposition == 3)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[4]);
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[2]);
             }
             //4 sitzt neben 5 und 3
             if (sitzposition == 4)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[5]);
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[3]);
             }
             //5 sitzt neben 4
             if (sitzposition == 5)
             {
                 sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[4]);
             }
         }
     }
     return(sitznachbarn);
 }
 private void SchuelerLoeschenButton_Click(object sender, RoutedEventArgs e)
 {
     if (selectedSchueler != null)
     {
         MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show
                                                 ("Wollen Sie " + selectedSchueler.vorname + " " + selectedSchueler.name + " wirklich löschen?",
                                                 "Löschen bestätigen", System.Windows.MessageBoxButton.YesNo);
         if (messageBoxResult == MessageBoxResult.Yes)
         {
             schuelerCollection.Remove(selectedSchueler);
         }
         selectedSchueler = null;
         schuelerGrid.Items.Refresh();
     }
     else
     {
         MessageBox.Show("Wählen Sie einen Schüler aus");
     }
 }
        private void swapSchuelerButton_Click(object sender, RoutedEventArgs e)
        {
            int      anzahl    = 0;
            Schueler schueler1 = new Schueler();
            Schueler schueler2 = new Schueler();

            foreach (Schueler schueler in schuelerGrid.ItemsSource)
            {
                if (((CheckBox)checkGrid.GetCellContent(schueler)).IsChecked == true)
                {
                    if (anzahl == 0)
                    {
                        schueler1 = schueler;
                        anzahl++;
                    }
                    else if (anzahl == 1)
                    {
                        schueler2 = schueler;
                        anzahl++;
                        break;
                    }
                }
            }
            if (anzahl == 2)
            {
                sitzplanFuerBlock.tauschePlaetze(schueler1, schueler2);
                String tischnummerSpeicher = schuelerCollection[schuelerCollection.IndexOf(schueler1)].tischnummer;
                String platzSpeicher       = schuelerCollection[schuelerCollection.IndexOf(schueler1)].sitzplatznummer;
                entferneHaeckchen();
                schuelerCollection[schuelerCollection.IndexOf(schueler1)].tischnummer     = schuelerCollection[schuelerCollection.IndexOf(schueler2)].tischnummer;
                schuelerCollection[schuelerCollection.IndexOf(schueler1)].sitzplatznummer = schuelerCollection[schuelerCollection.IndexOf(schueler2)].sitzplatznummer;

                schuelerCollection[schuelerCollection.IndexOf(schueler2)].tischnummer     = tischnummerSpeicher;
                schuelerCollection[schuelerCollection.IndexOf(schueler2)].sitzplatznummer = platzSpeicher;
                schuelerGrid.Items.Refresh();
                MessageBox.Show("Schüler " + schueler1.vorname + " " + schueler1.name + " wurde mit Schüler " + schueler2.vorname + " " + schueler2.name + " getauscht");
            }
            else
            {
                MessageBox.Show("Sie müssen 2 Schüler auswählen um zu tauschen.");
            }
        }
Beispiel #9
0
        //Mischen der SchülerListe
        public static List <Schueler> Shuffle(List <Schueler> list)
        {
            RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider();
            int n = list.Count;

            while (n > 1)
            {
                byte[] box = new byte[1];
                do
                {
                    provider.GetBytes(box);
                }while (!(box[0] < n * (Byte.MaxValue / n)));
                int k = (box[0] % n);
                n--;
                Schueler value = list[k];
                list[k] = list[n];
                list[n] = value;
            }
            return(list);
        }
        //Tauschen hinweg mit Schülern --> Nukk Elemente können hiermit nicht angesprochen werden
        public void tauschePlaetze(Schueler schuelerA, Schueler schuelerB)
        {
            int tischA = -1;
            int platzA = -1;
            int tischB = -1;
            int platzB = -1;

            foreach (Tischgruppe gruppe in this.tischgruppen)
            {
                if (gruppe.getSitzplaetze().IndexOf(schuelerA) >= 0)
                {
                    tischA = this.tischgruppen.IndexOf(gruppe);
                    platzA = gruppe.getSitzplaetze().IndexOf(schuelerA);
                }
                if (gruppe.getSitzplaetze().IndexOf(schuelerB) >= 0)
                {
                    tischB = this.tischgruppen.IndexOf(gruppe);
                    platzB = gruppe.getSitzplaetze().IndexOf(schuelerB);
                }
            }
            tauschePlaetze(tischA, platzA, tischB, platzB);
        }
        public void removeSchueler(Schueler schueler)
        {
            int index = this.sitzplaetze.IndexOf(schueler);

            this.sitzplaetze[index] = null;
        }
 public void aenderSchuelerInListe(int index, Schueler schuelerNeu)
 {
     this.schuelerListe[index] = schuelerNeu;
 }
 public void aenderSchuelerInListe(Schueler schuelerAlt, Schueler schuelerNeu)
 {
     this.schuelerListe[this.schuelerListe.IndexOf(schuelerAlt)] = schuelerNeu;
 }
        public void entferneSchuelerInListe(int index)
        {
            Schueler schueler = schuelerListe[index];

            entferneSchuelerInListe(schueler);
        }
 public void entferneSchuelerInListe(Schueler schueler)
 {
     this.schuelerListe.Remove(schueler);
 }
 public void neuerSchuelerInListe(Schueler schueler)
 {
     this.schuelerListe.Add(schueler);
 }
 private SortedList <String, int> bestimmeSitznachbar(SortedList <String, int> sitznachbarn, Schueler sitznachbar)
 {
     //Sitzplatz auf Besetztheit prüfen
     if (sitznachbar != null)
     {
         if (sitznachbarn.ContainsKey(sitznachbar.getVollerName()))
         {
             sitznachbarn[sitznachbar.getVollerName()] += 1;
         }
         else
         {
             sitznachbarn.Add(sitznachbar.getVollerName(), 1);
         }
     }
     return(sitznachbarn);
 }
        private void addSchuelerButton_Click(object sender, RoutedEventArgs e)
        {
            Schueler newSchueler = new Schueler();

            schuelerCollection.Add(newSchueler);
        }