Files
Toolkit2/Toolkit.Foundation/ConfigurationInitializer.cs
T
TheXamlGuy b155f5c6e2 wip
2024-06-12 23:04:22 +01:00

26 lines
829 B
C#

namespace Toolkit.Foundation;
public class ConfigurationInitializer<TConfiguration>(IConfigurationReader<TConfiguration> reader,
IConfigurationWriter<TConfiguration> writer,
IConfigurationFactory<TConfiguration> factory,
IPublisher publisher) :
IConfigurationInitializer<TConfiguration>,
IInitialization
where TConfiguration :
class
{
public Task Initialize()
{
if (!reader.TryRead(out TConfiguration? configuration))
{
if (factory.Create() is object defaultConfiguration)
{
configuration = (TConfiguration?)defaultConfiguration;
writer.Write(defaultConfiguration);
}
}
publisher.PublishUI(new ActivatedEventArgs<TConfiguration>(configuration));
return Task.CompletedTask;
}
}