/// <summary>
        /// Methode die biem Drücken des 'Speichern'-Buttons ausgeführt wird
        /// </summary>
        /// <param name="obj"></param>
        private void SaveCommandExecute(object obj)
        {
            //Eingegeben Titel formatieren
            EingabeTitle = Formatter.FormatNewTitle(EingabeTitle);
            //SQL-Command für das Ermitteln von Titeln erstellen
            var selectCommand = DBQuery.CreateSqlParameterTitle(EingabeTitle, false);
            //Titel aus der Datenbank abrufen
            var currentTitles = DatabaseHelper.CheckDatabase(selectCommand);

            if (currentTitles.Rows.Count > 0)
            {
                //Titel existiert bereits in der Datenbank
                //Fehler-Text aus der Datenbank lesen
                var text = DatabaseHelper.GetNotificationText(4);
                //Fehler als MessageBox auf der Benutzeroberfläche anzeigen
                MessageBox.Show(text, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                //Titel ist in der Datenbank noch nicht vorhanden
                //SQL-Command für das Einfügen des Titels erstellen
                var insertCommand = DBQuery.CreateSqlParameterTitle(EingabeTitle, true);
                //SQL-Command ausführen
                int resCount = DatabaseHelper.InsertDatabase(insertCommand);

                //Anzahl der geschriebenen Datensätze prüfen
                if (resCount == 1)
                {
                    //Genau ein Datensatz wurde geschrieben
                    //Erfolgsmeldung auf der Benutzeroberfläche anzeigen
                    var text = DatabaseHelper.GetNotificationText(5);
                    MessageBox.Show(text, "Gespeichert", MessageBoxButton.OK, MessageBoxImage.Information);
                    //Eingabe zurücksetzen
                    _reset();
                }
                else
                {
                    //Datensatz konnte nicht in die Datenbank geschrieben
                    //Fehler auf der Benutzeroberlfäche anzeigen
                    var text = DatabaseHelper.GetNotificationText(6);
                    MessageBox.Show(text, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Beispiel #2
0
        private int _saveContact()
        {
            int res = Validator.ValidateContact(Contact);

            if (res != 0)
            {
                return(res);
            }
            else
            {
                //Beginn Speicher-Vorgang...
                try
                {
                    var insertContactParameter = DBQuery.CreateSqlParameterSaveContact(Contact);
                    var cnt = DatabaseHelper.InsertDatabase(insertContactParameter);

                    var getLastContactParamter = DBQuery.CreateSqlParameterLastContact();
                    var id = DatabaseHelper.CheckDatabase(getLastContactParamter);

                    int contactId = 0;
                    int.TryParse(id.Rows[0][0].ToString(), out contactId);

                    var toInsert = new List <TitleModel>();
                    //Alle noch nicht in der Datenbank vorhandene Titel ermitteln
                    var newTitles = Contact.TitelList.FindAll(x => x.Title_ID == 0);
                    foreach (var entry in newTitles)
                    {
                        //Insert neuen Titel
                        var insertTitleCommand = DBQuery.CreateSqlParameterTitle(entry.Title, true);
                        int resCount           = DatabaseHelper.InsertDatabase(insertTitleCommand);

                        //Hinzugefügten Titel aus der Datenbank ermitteln
                        var selectCommand = DBQuery.CreateSqlParameterTitle(entry.Title, false);
                        var currentTitles = DatabaseHelper.CheckDatabase(selectCommand);

                        //Neu hinzugfügten Titel in Liste schreiben
                        toInsert.Add(new TitleModel
                        {
                            Title_ID = int.Parse(currentTitles.Rows[0][0].ToString()),
                            Title    = currentTitles.Rows[0][1].ToString()
                        });
                    }

                    //Alle bereits in der Datenbank vorhandenen Titel ermitteln
                    var existingTitles = Contact.TitelList.FindAll(x => x.Title_ID != 0);
                    toInsert.AddRange(existingTitles);

                    //Über alle dem Kontakt zugeordneten Titel loopen und diese in die Datenbank schreiben
                    foreach (var entry in toInsert)
                    {
                        var insertTitleContactParameter = DBQuery.CreateSqlParameterSaveTitle(contactId, entry.Title_ID);
                        var resTitleContact             = DatabaseHelper.InsertDatabase(insertTitleContactParameter);
                    }
                }
                catch (Exception ex)
                {
                    //Fehler während der Verarbeitung
                    return(10);
                }

                return(11);
            }
        }