66 lines
2.2 KiB
C#
66 lines
2.2 KiB
C#
using Microsoft.Data.Sqlite;
|
|
using Project.Model;
|
|
namespace Project.Persistence;
|
|
|
|
public partial class SQLite
|
|
{
|
|
//filepath for home-pc:
|
|
//private static string _dbPath = "C:/Users/Soi/Desktop/keywi.db";
|
|
//filepath for work-laptop:
|
|
private static string _dbPath = "C:/Users/lowns/Desktop/keywi.db";
|
|
//KLASSENVARIABLEN ERSTELLEN
|
|
//private static string loginname;
|
|
|
|
|
|
//checks if there is a sqlite database in _dbPath on programm startup, if not -> creates the database and a table LOGINS
|
|
public static void Init()
|
|
{
|
|
using var connection = new SqliteConnection($"Data Source={_dbPath}");
|
|
connection.Open();
|
|
|
|
var command = connection.CreateCommand();
|
|
command.CommandText =
|
|
@"
|
|
CREATE TABLE IF NOT EXISTS LOGINS (
|
|
loginname STRING PRIMARY KEY NOT NULL,
|
|
loginpass STRING NOT NULL,
|
|
loginemail STRING NOT NULL
|
|
);
|
|
";
|
|
command.ExecuteNonQuery();
|
|
command.CommandText =
|
|
@"
|
|
CREATE TABLE IF NOT EXISTS SAVED_LOGINS (
|
|
name STRING PRIMARY KEY NOT NULL,
|
|
pass STRING NOT NULL,
|
|
mail_username STRING NOT NULL,
|
|
url STRING NOT NULL,
|
|
note STRING,
|
|
owner STRING NOT NULL,
|
|
FOREIGN KEY(owner) REFERENCES LOGINS(loginname)
|
|
|
|
);
|
|
";
|
|
command.ExecuteNonQuery();
|
|
}
|
|
|
|
//saves a new user to the table LOGINS
|
|
public static void SaveUser(NewUser user)
|
|
{
|
|
using var connection = new SqliteConnection($"Data Source={_dbPath}");
|
|
connection.Open();
|
|
using (var command = connection.CreateCommand())
|
|
{
|
|
command.Parameters.AddWithValue("@loginname", user.NewLoginName);
|
|
command.Parameters.AddWithValue("@loginpass", user.NewMasterPassword);
|
|
command.Parameters.AddWithValue("@loginemail", user.NewEmail);
|
|
|
|
command.CommandText =
|
|
@"
|
|
INSERT INTO LOGINS (loginname, loginpass, loginemail)
|
|
VALUES (@loginname, @loginpass, @loginemail);";
|
|
command.ExecuteNonQuery();
|
|
|
|
}
|
|
}
|
|
} |