File size: 839 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
using System.Text.Json;

namespace BakeryErp.Infrastructure.Database;

public sealed class DatabaseInitializer
{
    private readonly DatabaseOptions _options;

    public DatabaseInitializer(DatabaseOptions options)
    {
        _options = options;
    }

    public void Initialize()
    {
        var directory = Path.GetDirectoryName(_options.DatabasePath);
        if (!string.IsNullOrWhiteSpace(directory))
        {
            Directory.CreateDirectory(directory);
        }

        if (File.Exists(_options.DatabasePath))
        {
            var existing = LocalDataStoreFile.Load(_options);
            existing.EnsureSeedData();
            LocalDataStoreFile.Save(_options, existing);
            return;
        }

        var store = LocalDataStore.CreateSeed();
        LocalDataStoreFile.Save(_options, store);
    }
}