Esempio n. 1
0
        private void ButtonAdd(object sender, RoutedEventArgs e)
        {
            int Start = 0;
            int Ende  = 0;

            if (int.TryParse(this.tbStart.Text.Trim(), out Start) && int.TryParse(this.tbEnde.Text.Trim(), out Ende))
            {
                try {
                    FromTo FT = new FromTo(Start, Ende);

                    List <int>        ÜberschneidungenNummern = new List <int>();
                    IEnumerable <int> VorhandeNummern         = this.m_Current.Select(Current => Current.Nummer);
                    foreach (int Current in FT.Generate())
                    {
                        if (VorhandeNummern.Contains(Current))
                        {
                            ÜberschneidungenNummern.Add(Current);
                        }
                    }

                    if (ÜberschneidungenNummern.Count > 0)
                    {
                        // Einige Einträge vorhanden
                        switch (MessageBox.Show(string.Format("Ja: Füge vorhande Einträge auch hinzu ({0})\nNein: Nur nicht vorhande Folgen hinzufügen\nAbbrechen: Vorgang Abbrechen", string.Join(", ", ÜberschneidungenNummern)), "",
                                                MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.Cancel)
                                )
                        {
                        case MessageBoxResult.Yes:
                            this.m_Current.AddRange(FT.Generate());
                            this.DialogResult = true;
                            this.Close();
                            break;

                        case MessageBoxResult.No:
                            this.m_Current.AddRange(FT.Generate().Where(Current => !ÜberschneidungenNummern.Contains(Current)));
                            this.DialogResult = true;
                            this.Close();
                            break;

                        case MessageBoxResult.Cancel:
                            break;
                        }
                    }
                    else
                    {
                        this.m_Current.AddRange(FT.Generate());
                        this.DialogResult = true;
                        this.Close();
                    }
                }
                catch (Exception ex) {
                    MessageBox.Show("Die Ende-Zahl muss größer als die Start Zahl sein\n" + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Bitte nur Zahlen eintragen");
            }
        }
        private void SearchFolgenVerpasst(object sender, RoutedEventArgs e)
        {
            Staffel CurrentStaffel = (Staffel)cbStaffeln.SelectedItem;

            int NummerNeu = CurrentStaffel.Folgen.NummerNeueFolge();

            IEnumerable <int> Lücken = new int[0];

            if (NummerNeu > 1)
            {
                FromTo FT = new FromTo(1, NummerNeu - 1);
                Lücken = FT.Generate().Where(Current => !CurrentStaffel.Folgen.Select(InnerCurrent => InnerCurrent.Nummer).Contains(Current));
            }

            if (Lücken.Count() > 0)
            {
                MessageBox.Show(string.Join(", ", Lücken), "Verpasste Folgen", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else
            {
                MessageBox.Show("Keine verpassten Folgen!", string.Empty, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
            }
        }