Add foundation

This commit is contained in:
TheXamlGuy
2024-04-13 11:29:32 +01:00
parent 6f31aa8513
commit 053d8a851e
264 changed files with 3428 additions and 4683 deletions
@@ -0,0 +1,25 @@
namespace Toolkit.Foundation;
public class ConfigurationInitializer<TConfiguration>(IPublisher publisher,
IConfigurationReader<TConfiguration> reader,
IConfigurationWriter<TConfiguration> writer,
IConfigurationFactory<TConfiguration> factory) :
IConfigurationInitializer<TConfiguration>,
IInitializer
where TConfiguration :
class
{
public async Task Initialize()
{
if (!reader.TryRead(out TConfiguration? configuration))
{
if (factory.Create() is object defaultConfiguration)
{
configuration = (TConfiguration?)defaultConfiguration;
writer.Write(defaultConfiguration);
}
}
await publisher.PublishUI(new Changed<TConfiguration>(configuration));
}
}