예제 #1
0
        public async static void WriteCSV()
        {
            FileSavePicker savePicker = new FileSavePicker()
            {
                SuggestedStartLocation = PickerLocationId.DocumentsLibrary
            };

            savePicker.FileTypeChoices.Add("CSV-Datei", new List <string>()
            {
                ".csv"
            });
            savePicker.SuggestedFileName = "klassenliste";

            StorageFile file = await savePicker.PickSaveFileAsync();

            if (file != null)
            {
                try
                {
                    // Prevent updates to the remote version of the file until we finish making changes and call CompleteUpdatesAsync.
                    CachedFileManager.DeferUpdates(file);
                    // write to file
                    await FileIO.WriteTextAsync(file, "Name;Vorname;Klasse;Klassenlehr;Geschlecht" + '\n');

                    for (int i = 0; i < DataManager.Instance.Count(); ++i)
                    {
                        Klasse klasse = DataManager.Instance.KlasseAt(i);
                        for (int j = 0; j != klasse.StudentsCount(); ++j)
                        {
                            string[] name  = klasse.StudentAt(j).Split(',');
                            string   entry = name[0] + ';' +
                                             name[1].Substring(1) + ';' +
                                             klasse.Name + ';' +
                                             klasse.Leiter.Substring(5) + ';' +
                                             (klasse.Leiter[0] == 'H' ? "männlich" : "weiblich");
                            await FileIO.AppendTextAsync(file, entry + '\n');
                        }
                    }
                }
                catch (Exception ex)
                {
                    var dialog = new MessageDialog("Error: Could not write file to disk. Original error: " + ex.Message); await dialog.ShowAsync();
                }
            }
        }
예제 #2
0
 public void KlassenChanged(Klasse klasse)
 {
     if (!DataManager.Instance.IsEmpty())
     {
         BTN_print.Visibility = Visibility.Visible;
         //BTN_save.Visibility = Visibility.Visible;
         klassenCombo.Items.Add(klasse.Name);
         if (klassenCombo.SelectedIndex < 0)
         {
             klassenCombo.SelectedIndex = 0;
         }
         COB_mode.IsEnabled = true;
     }
     else
     {
         BTN_print.Visibility = Visibility.Collapsed;
         //BTN_save.Visibility = Visibility.Collapsed;
         klassenCombo.Items.Clear();
         COB_mode.IsEnabled = false;
     }
 }
예제 #3
0
        public void LoadSettings()
        {
            if (!DataManager.Instance.IsEmpty())
            {
                return;
            }

            Windows.Storage.ApplicationDataContainer localSettings =
                Windows.Storage.ApplicationData.Current.LocalSettings;

            if (!localSettings.Values.ContainsKey(KLASSEN_SETTINGS_KEY))
            {
                return;
            }

            String klassenAsString = (String)localSettings.Values[KLASSEN_SETTINGS_KEY];

            if (klassenAsString != null && klassenAsString.Length > 0)
            {
                string[] klassen = klassenAsString.Split('\n');
                foreach (string klasseString in klassen)
                {
                    if (klasseString.Length == 0)
                    {
                        continue;
                    }
                    string[] data   = klasseString.Split('\t');
                    Klasse   klasse = new Klasse(data[0], data[1]);
                    for (int i = 2; i < data.Length; ++i)
                    {
                        string[] names = data[i].Split(',');
                        klasse.AddStudent(names[1], names[0]);
                    }
                    AddKlasse(klasse);
                }
            }
        }
예제 #4
0
        private void generateKlass(Grid place)
        {
            Grid klassenGrid = new Grid()
            {
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center
            };

            for (int i = 1; i <= KLASSENGRID_COL_COUNT; ++i)
            {
                ColumnDefinition columnDefinition = new ColumnDefinition()
                {
                    Width = new GridLength(KLASSENGRID_COL_WIDTH)
                };
                klassenGrid.ColumnDefinitions.Add(columnDefinition);
            }
            for (int i = 1; i <= KLASSENGRID_ROW_COUNT; ++i)
            {
                RowDefinition rowDefinition = new RowDefinition()
                {
                    Height = new GridLength(KLASSENGRID_ROW_HEIGHT)
                };
                klassenGrid.RowDefinitions.Add(rowDefinition);
            }
            Klasse klasse = DataManager.Instance.KlasseAt(klassenCombo.SelectedIndex);
            int    studentsCount = klasse.StudentsCount();
            int    cur = 0, col = 0, row = 0;

            while (cur < studentsCount)
            {
                TextBlock txt = new TextBlock()
                {
                    FontSize = 14
                };
                if (col == 0 && row == 0)
                {
                    txt.Text       = "Klasse: " + klasse.Name;
                    txt.FontWeight = FontWeights.Bold;
                }
                else if (col == 1 && row == 0)
                {
                    txt.Text       = "Klassenleiter: " + klasse.Leiter;
                    txt.FontWeight = FontWeights.Bold;
                }
                else if (!(col == 2 && row == 0))
                {
                    txt.Text = klasse.StudentAt(cur++);
                }

                klassenGrid.Children.Add(txt);
                Grid.SetColumn(txt, col);
                Grid.SetRow(txt, row);

                if (++row == KLASSENGRID_ROW_COUNT)
                {
                    row = 0;
                    col++;
                }
            }
            place.Children.Add(klassenGrid);
        }
예제 #5
0
        private void KlassenCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Klasse klasse = DataManager.Instance.KlasseAt(klassenCombo.SelectedIndex);

            UpdateKlassenGrid(klasse);
        }
예제 #6
0
        private void UpdateKlassenGrid(Klasse klasse)
        {
            klassenGrid.Children.Clear();
            if (klasse == null)
            {
                return;
            }
            if (klassenGrid.ColumnDefinitions.Count == 0)
            {
                for (int i = 1; i <= KLASSENGRID_COL_COUNT; ++i)
                {
                    ColumnDefinition columnDefinition = new ColumnDefinition()
                    {
                        Width = new GridLength(KLASSENGRID_COL_WIDTH)
                    };
                    klassenGrid.ColumnDefinitions.Add(columnDefinition);
                }
            }
            if (klassenGrid.RowDefinitions.Count == 0)
            {
                for (int i = 1; i <= KLASSENGRID_ROW_COUNT; ++i)
                {
                    RowDefinition rowDefinition = new RowDefinition()
                    {
                        Height = new GridLength(KLASSENGRID_ROW_HEIGHT)
                    };
                    klassenGrid.RowDefinitions.Add(rowDefinition);
                }
            }
            int studentsCount = klasse.StudentsCount();
            int cur = 0, col = 0, row = 0;

            while (cur < studentsCount)
            {
                TextBlock txt = new TextBlock()
                {
                    FontSize = 12
                };
                if (col == 0 && row == 0)
                {
                    txt.Text       = "Klasse: " + klasse.Name;
                    txt.FontWeight = FontWeights.Bold;
                }
                else if (col == 1 && row == 0)
                {
                    txt.Text       = "Klassenleiter: " + klasse.Leiter;
                    txt.FontWeight = FontWeights.Bold;
                }
                else if (!(col == 2 && row == 0))
                {
                    txt.Text = klasse.StudentAt(cur++);
                }

                klassenGrid.Children.Add(txt);
                Grid.SetColumn(txt, col);
                Grid.SetRow(txt, row);

                if (++row == KLASSENGRID_ROW_COUNT)
                {
                    row = 0;
                    col++;
                }
            }
        }
예제 #7
0
        private void InitPage()
        {
            grid = new Grid();
            RelativePanel rp = new RelativePanel();

            rp.Margin = new Thickness(30);

            if (COB_mode.SelectedIndex == 0)
            {
                Image schoolImg = new Image()
                {
                    Source = IMG_school.Source,
                    HorizontalAlignment = HorizontalAlignment.Stretch,
                    VerticalAlignment   = VerticalAlignment.Stretch
                };
                StackPanel logoStack = new StackPanel()
                {
                    Orientation = Orientation.Vertical
                };
                //logoStack.HorizontalAlignment = HorizontalAlignment.Center;
                //logoStack.VerticalAlignment = VerticalAlignment.Center;

                TextBlock congratsText = new TextBlock()
                {
                    Text = TBL_logo_subjekt.Text,
                    HorizontalAlignment = HorizontalAlignment.Center,
                    TextAlignment       = TextAlignment.Center,
                    FontSize            = 22,
                    FontWeight          = FontWeights.Bold
                };
                Image logoImg = new Image()
                {
                    Source = IMG_logo.Source,
                    Height = 150
                };
                TextBlock zumText = new TextBlock()
                {
                    Text       = TBL_logo_articel.Text,
                    FontSize   = 26,
                    FontWeight = FontWeights.Bold
                };
                TextBlock causeText = new TextBlock()
                {
                    Text                = TBL_logo_title.Text,
                    FontSize            = 40,
                    HorizontalAlignment = HorizontalAlignment.Center,
                    FontWeight          = FontWeights.Bold
                };
                logoStack.Children.Add(congratsText);
                logoStack.Children.Add(logoImg);
                logoStack.Children.Add(zumText);
                logoStack.Children.Add(causeText);


                Grid klassenGrid = new Grid()
                {
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment   = VerticalAlignment.Center
                };
                for (int i = 1; i <= KLASSENGRID_COL_COUNT; ++i)
                {
                    ColumnDefinition columnDefinition = new ColumnDefinition()
                    {
                        Width = new GridLength(KLASSENGRID_COL_WIDTH)
                    };
                    klassenGrid.ColumnDefinitions.Add(columnDefinition);
                }
                for (int i = 1; i <= KLASSENGRID_ROW_COUNT; ++i)
                {
                    RowDefinition rowDefinition = new RowDefinition()
                    {
                        Height = new GridLength(KLASSENGRID_ROW_HEIGHT)
                    };
                    klassenGrid.RowDefinitions.Add(rowDefinition);
                }
                Klasse klasse = DataManager.Instance.KlasseAt(klassenCombo.SelectedIndex);
                int    studentsCount = klasse.StudentsCount();
                int    cur = 0, col = 0, row = 0;
                while (cur < studentsCount)
                {
                    TextBlock txt = new TextBlock()
                    {
                        FontSize = 14
                    };
                    if (col == 0 && row == 0)
                    {
                        txt.Text       = "Klasse: " + klasse.Name;
                        txt.FontWeight = FontWeights.Bold;
                    }
                    else if (col == 1 && row == 0)
                    {
                        txt.Text       = "Klassenleiter: " + klasse.Leiter;
                        txt.FontWeight = FontWeights.Bold;
                    }
                    else if (!(col == 2 && row == 0))
                    {
                        txt.Text = klasse.StudentAt(cur++);
                    }

                    klassenGrid.Children.Add(txt);
                    Grid.SetColumn(txt, col);
                    Grid.SetRow(txt, row);

                    if (++row == KLASSENGRID_ROW_COUNT)
                    {
                        row = 0;
                        col++;
                    }
                }

                Image klassenFoto = new Image()
                {
                    Source = IMG_class.Source,
                    Height = GRID_ROW_HEIGHT
                };
                //klassenFoto.HorizontalAlignment = HorizontalAlignment.Center;
                //klassenFoto.VerticalAlignment = VerticalAlignment.Center;

                Rectangle rect = new Rectangle();
                rect.SetValue(RelativePanel.AlignTopWithPanelProperty, true);
                rect.SetValue(RelativePanel.AlignBottomWithPanelProperty, true);
                rect.SetValue(RelativePanel.LeftOfProperty, logoStack);
                rect.SetValue(RelativePanel.RightOfProperty, schoolImg);
                rect.SetValue(RelativePanel.LeftOfProperty, klassenFoto);
                rect.SetValue(RelativePanel.RightOfProperty, klassenGrid);
                rect.Width = 30;

                schoolImg.SetValue(RelativePanel.AlignLeftWithPanelProperty, true);
                schoolImg.SetValue(RelativePanel.AlignTopWithPanelProperty, true);
                schoolImg.SetValue(RelativePanel.AlignTopWithProperty, logoStack);
                schoolImg.SetValue(RelativePanel.AlignBottomWithProperty, klassenFoto);
                schoolImg.SetValue(RelativePanel.AlignLeftWithProperty, klassenGrid);
                schoolImg.SetValue(RelativePanel.AlignRightWithProperty, klassenGrid);
                schoolImg.VerticalAlignment = VerticalAlignment.Top;
                schoolImg.Margin            = new Thickness(0, 0, 30, 0);


                logoStack.SetValue(RelativePanel.AlignTopWithPanelProperty, true);
                logoStack.SetValue(RelativePanel.AlignRightWithPanelProperty, true);

                logoStack.Margin = new Thickness(0);
                if (IMG_class.Visibility == Visibility.Collapsed)
                {
                }
                else
                {
                    logoStack.SetValue(RelativePanel.AlignLeftWithProperty, klassenFoto);
                    logoStack.SetValue(RelativePanel.AlignRightWithProperty, klassenFoto);
                }

                klassenGrid.SetValue(RelativePanel.AlignBottomWithPanelProperty, true);
                klassenGrid.SetValue(RelativePanel.AlignLeftWithPanelProperty, true);
                klassenGrid.Margin = new Thickness(0, 0, 30, 0);


                klassenFoto.SetValue(RelativePanel.AlignRightWithPanelProperty, true);
                klassenFoto.SetValue(RelativePanel.AlignBottomWithPanelProperty, true);
                klassenFoto.Margin = new Thickness(0);



                rp.Children.Add(rect);
                rp.Children.Add(schoolImg);
                rp.Children.Add(logoStack);
                rp.Children.Add(klassenGrid);
                rp.Children.Add(klassenFoto);
            }
            else if (COB_mode.SelectedIndex == 1)
            {
                Grid klassenGrid = new Grid()
                {
                    HorizontalAlignment = HorizontalAlignment.Center,
                    VerticalAlignment   = VerticalAlignment.Center
                };
                for (int i = 1; i <= KLASSENGRID_COL_COUNT; ++i)
                {
                    ColumnDefinition columnDefinition = new ColumnDefinition()
                    {
                        Width = new GridLength(KLASSENGRID_COL_WIDTH)
                    };
                    klassenGrid.ColumnDefinitions.Add(columnDefinition);
                }
                for (int i = 1; i <= KLASSENGRID_ROW_COUNT; ++i)
                {
                    RowDefinition rowDefinition = new RowDefinition()
                    {
                        Height = new GridLength(KLASSENGRID_ROW_HEIGHT)
                    };
                    klassenGrid.RowDefinitions.Add(rowDefinition);
                }
                Klasse klasse = DataManager.Instance.KlasseAt(klassenCombo.SelectedIndex);
                int    studentsCount = klasse.StudentsCount();
                int    cur = 0, col = 0, row = 0;
                while (cur < studentsCount)
                {
                    TextBlock txt = new TextBlock()
                    {
                        FontSize = 14
                    };
                    if (col == 0 && row == 0)
                    {
                        txt.Text       = "Klasse: " + klasse.Name;
                        txt.FontWeight = FontWeights.Bold;
                    }
                    else if (col == 1 && row == 0)
                    {
                        txt.Text       = "Klassenleiter: " + klasse.Leiter;
                        txt.FontWeight = FontWeights.Bold;
                    }
                    else if (!(col == 2 && row == 0))
                    {
                        txt.Text = klasse.StudentAt(cur++);
                    }

                    klassenGrid.Children.Add(txt);
                    Grid.SetColumn(txt, col);
                    Grid.SetRow(txt, row);

                    if (++row == KLASSENGRID_ROW_COUNT)
                    {
                        row = 0;
                        col++;
                    }
                }
                rp.Children.Add(klassenGrid);
            }
            grid.Children.Add(rp);
        }
예제 #8
0
 public void AddKlasse(Klasse klasse)
 {
     klassen.Add(klasse);
     OnChanged(klasse);
 }
예제 #9
0
 protected virtual void OnChanged(Klasse klasse)
 {
     Changed?.Invoke(klasse);
 }