//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); }
//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); } }