Implement Write() in Config and rename DatabasePath to DatabaseFile

This commit is contained in:
2023-04-15 22:55:01 +02:00
parent ecf5ed8d55
commit 27fbae088a
3 changed files with 10 additions and 8 deletions

View File

@ -26,7 +26,7 @@ namespace Elwig {
protected override void OnStartup(StartupEventArgs evt) { protected override void OnStartup(StartupEventArgs evt) {
using (var ctx = new AppDbContext()) { using (var ctx = new AppDbContext()) {
if (!ctx.Database.CanConnect()) { if (!ctx.Database.CanConnect()) {
MessageBox.Show($"Invalid Database:\n\n{Config.DatabasePath}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error);
Shutdown(); Shutdown();
} }
} }

View File

@ -23,7 +23,7 @@ namespace Elwig.Helpers {
public DbSet<WineVar> WineVarieties { get; set; } public DbSet<WineVar> WineVarieties { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlite($"Data Source=\"{App.Config.DatabasePath}\"; Foreign Keys=True; Mode=ReadWrite; Cache=Default"); optionsBuilder.UseSqlite($"Data Source=\"{App.Config.DatabaseFile}\"; Foreign Keys=True; Mode=ReadWrite; Cache=Default");
optionsBuilder.UseLazyLoadingProxies(); optionsBuilder.UseLazyLoadingProxies();
base.OnConfiguring(optionsBuilder); base.OnConfiguring(optionsBuilder);
} }

View File

@ -1,4 +1,5 @@
using System; using System;
using System.IO;
using System.Text; using System.Text;
using IniParser; using IniParser;
using IniParser.Model; using IniParser.Model;
@ -7,7 +8,7 @@ namespace Elwig.Helpers {
public class Config { public class Config {
private readonly string FileName; private readonly string FileName;
public string DatabasePath; public string DatabaseFile;
public Config(string filename) { public Config(string filename) {
FileName = filename; FileName = filename;
@ -21,17 +22,18 @@ namespace Elwig.Helpers {
ini = parser.ReadFile(FileName, Encoding.UTF8); ini = parser.ReadFile(FileName, Encoding.UTF8);
} catch {} } catch {}
if (ini == null || !ini.TryGetKey("database.path", out string db)) { if (ini == null || !ini.TryGetKey("database.file", out string db)) {
DatabasePath = App.DataPath + "database.sqlite3"; DatabaseFile = App.DataPath + "database.sqlite3";
} else if (db.Length > 1 && db[1] == ':') { } else if (db.Length > 1 && db[1] == ':') {
DatabasePath = db; DatabaseFile = db;
} else { } else {
DatabasePath = App.DataPath + db; DatabaseFile = App.DataPath + db;
} }
} }
public void Write() { public void Write() {
throw new NotImplementedException(); using var file = new StreamWriter(FileName, false, Encoding.UTF8);
file.Write($"\n[database]\nfile = {DatabaseFile}\n");
} }
} }
} }