예제 #1
0
        //Kopiert eine Datei von der SD Karte in den internen Speiceher
        public async Task <List <Baumart[]> > copy_DB_to_internal(string projektname)
        {
            //Zugriff auf die SD-Karte erstellen
            StorageFolder sdCard = (await KnownFolders.RemovableDevices.GetFoldersAsync()).FirstOrDefault();
            //Ordner ProBaumkontrollen erstellen
            StorageFolder dataFolder_on_sd = await sdCard.CreateFolderAsync("ProBaumkontrollen", CreationCollisionOption.OpenIfExists);

            var file_arbeitsDB = await dataFolder_on_sd.GetFileAsync(projektname + dbFileEnding);

            SQLiteConnection connection_to_projekteDB = connectToProjektDB();

            List <Projekt> list_projekt_vorhanden = connection_to_projekteDB.Query <Projekt>("SELECT * FROM tabProjekt WHERE Name=?", projektname);

            List <Baumart[]> list_problem_baumarten = new List <Baumart[]>();

            if (list_projekt_vorhanden.Count > 0)
            {
                //Irgendwas machen, dass die Beiden Datenbanken zusammenführt
                MessageDialog message_db_vorhanden = new MessageDialog("Die zu kopierende Datenbank existiert bereits. Prüfen sie ob die Version auf der SD-Karte, oder die im Handyspeicher aktueller ist. Wenn sie fortfahren, wird die interne Datenbank mit der von der SD-Karte überschrieben./n Soll die Interne Datenbank überschrieben werden?", "Warnung");
                message_db_vorhanden.Commands.Add(new UICommand("Ja"));
                message_db_vorhanden.Commands.Add(new UICommand("Nein"));

                var command = await message_db_vorhanden.ShowAsync();

                switch (command.Label)
                {
                case "Ja":
                    //Löschen der internen Datenbank
                    deleteArbeitsDB(projektname);

                    //Anlegen des Projekts und kopieren der Datei
                    Projekt projekt = new Projekt();
                    projekt.Name = projektname;
                    connection_to_projekteDB.Insert(projekt);
                    await file_arbeitsDB.CopyAsync(arbeitsDBFolder, file_arbeitsDB.Name, NameCollisionOption.ReplaceExisting);

                    //Zusammenführen der Baumarten
                    list_problem_baumarten = merge_baumarten(projektname);
                    break;

                case "Nein":
                    break;

                default:
                    break;
                }
            }
            else
            {
                //Anlegen des Projekts und kopieren der Datei
                Projekt projekt = new Projekt();
                projekt.Name = projektname;
                connection_to_projekteDB.Insert(projekt);
                await file_arbeitsDB.CopyAsync(arbeitsDBFolder, file_arbeitsDB.Name, NameCollisionOption.ReplaceExisting);

                //Zusammenführen der Baumarten
                list_problem_baumarten = merge_baumarten(projektname);
            }

            connection_to_projekteDB.Close();
            return(list_problem_baumarten);
        }
예제 #2
0
        //Bestätigt den eingegebenen Projektnamen
        private void button_projekt_hinzufügen_bestätigen_Click(object sender, RoutedEventArgs e)
        {
            List <Projekt> liste_projekte_mit_selben_namen = connection_to_projekteDB.Query <Projekt>("SELECT * FROM tabProjekt WHERE Name=?", textbox_projekt.Text);

            if (textbox_projekt.Text != "")
            {
                //Textbox ist nicht leer
                if (liste_projekte_mit_selben_namen.Count == 0)
                {
                    //Es ist kein Projekt mit dem selben Namen angelegt
                    Projekt newProjekt = new Projekt
                    {
                        Name  = textbox_projekt.Text,
                        Aktiv = true
                    };

                    //Hinzufügen des neuen Projektes zur Projekt DB
                    connection_to_projekteDB.Insert(newProjekt);
                    combo_projekt.Items.Add(newProjekt.Name);
                    combo_projekt.SelectedItem = newProjekt.Name;

                    //Zurücksetzen des UI's
                    textbox_projekt.Visibility = Visibility.Collapsed;
                    textbox_projekt.Text       = "";
                    button_projekt_hinzufügen_bestätigen.Visibility = Visibility.Collapsed;
                    button_projekt_hinzufügen_abbrechen.Visibility  = Visibility.Collapsed;
                    combo_projekt.Visibility = Visibility.Visible;

                    //Anlegen der Arbeits DB für das Projekt
                    dbVerwalter.createArbeitsDB(newProjekt.Name);

                    //Aktualisiieren der Baumartentabelle in der neuen DB
                    SQLiteConnection connection_to_arbeitsDB = dbVerwalter.connectToArbeitsDB(newProjekt.Name);
                    SQLiteConnection connection_to_baumartDB = dbVerwalter.connectToBaumartDB();

                    List <Baumart> list_alle_baumarten = connection_to_baumartDB.Table <Baumart>().ToList();

                    if (list_alle_baumarten.Count != 0)
                    {
                        foreach (var baumart in list_alle_baumarten)
                        {
                            connection_to_arbeitsDB.Insert(baumart);
                        }
                    }

                    connection_to_arbeitsDB.Close();
                    connection_to_baumartDB.Close();
                }
                else
                {
                    text_in_projektflyout_keine_eingabe.Visibility   = Visibility.Collapsed;
                    text_in_projektflyout_projekt_doppelt.Visibility = Visibility.Visible;
                    texteingabe_projekt.Text = textbox_projekt.Text;
                    FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
                }
            }
            else
            {
                text_in_projektflyout_projekt_doppelt.Visibility = Visibility.Collapsed;
                text_in_projektflyout_keine_eingabe.Visibility   = Visibility.Visible;
                FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
            }
        }