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));
    }
}