/// <summary>
        /// Fügt der DB eine neue Person hinzu oder aktualisiert diese.
        /// </summary>
        /// <param name="versorger">Die zu speichernde Person.</param>
        public IVersorger InsertOrUpdate(IVersorger versorger)
        {
            var connection = new SQLiteConnection(SQL_CONNECTION_STRING);

            connection.Open();

            var statement = new SQLiteCommand(versorger.Id == 0 ? SQL_INSERT : SQL_UPDATE, connection);

            statement.Parameters.Add(new SQLiteParameter("@versorgertyp", (int)versorger.StammdatenTyp));
            statement.Parameters.Add(new SQLiteParameter("@name", versorger.Name));
            statement.Parameters.Add(new SQLiteParameter("@strasse", versorger.Strasse));
            statement.Parameters.Add(new SQLiteParameter("@hausnummer", versorger.Hausnummer));
            statement.Parameters.Add(new SQLiteParameter("@plz", versorger.Plz));
            statement.Parameters.Add(new SQLiteParameter("@ort", versorger.Ort));

            statement.ExecuteNonQuery();
            if (versorger.Id == 0)
            {
                versorger.Id = GetLastRowId(connection);
            }

            connection.Close();

            return(versorger);
        }
        /// <summary>
        /// Liest die Daten zu einer bestimmten Person aus der DB.
        /// </summary>
        /// <param name="id">Die Id der zu ladenden Person.</param>
        /// <returns>Eine <see cref="IPerson"/> mit den Daten aus der DB.</returns>
        public IVersorger GetById(int id)
        {
            var connection = new SQLiteConnection(SQL_CONNECTION_STRING);

            connection.Open();

            IVersorger versorger = null;

            var statement = new SQLiteCommand(SQL_GET_BY_ID, connection);

            statement.Parameters.Add(new SQLiteParameter("@id", id));

            SQLiteDataReader reader = statement.ExecuteReader();

            while (reader.Read())
            {
                versorger = VersorgerFactory.Create(reader.GetInt32(0), (EnumStammdatenTyp)reader.GetInt32(1), reader.GetString(2), reader.GetString(3), reader.GetString(4), reader.GetString(5), reader.GetString(6));
            }

            connection.Close();

            return(versorger);
        }
 public VersorgerViewModel(IVersorger versorger)
 {
     Model         = versorger;
     stammdatenTyp = versorger.StammdatenTyp;
 }