Spaces:
Running
Running
File size: 994 Bytes
13240d3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | using System.Text.Json;
namespace BakeryErp.Infrastructure.Database;
public static class LocalDataStoreFile
{
private static readonly JsonSerializerOptions JsonOptions = new()
{
WriteIndented = true
};
public static LocalDataStore Load(DatabaseOptions options)
{
if (!File.Exists(options.DatabasePath))
{
return LocalDataStore.CreateSeed();
}
var store = JsonSerializer.Deserialize<LocalDataStore>(File.ReadAllText(options.DatabasePath))
?? LocalDataStore.CreateSeed();
store.EnsureSeedData();
return store;
}
public static void Save(DatabaseOptions options, LocalDataStore store)
{
var directory = Path.GetDirectoryName(options.DatabasePath);
if (!string.IsNullOrWhiteSpace(directory))
{
Directory.CreateDirectory(directory);
}
File.WriteAllText(options.DatabasePath, JsonSerializer.Serialize(store, JsonOptions));
}
}
|