using CommunityToolkit.Mvvm.Messaging; namespace Toolkit.Foundation { public class WriteHandler : IRecipient> where TConfiguration : class { private readonly IMessenger messenger; private readonly TConfiguration configuration; private readonly IConfigurationWriter writer; public WriteHandler(TConfiguration configuration, IConfigurationWriter writer, IMessenger messenger) { this.messenger = messenger; this.configuration = configuration; this.writer = writer; } public void Receive(Write request) { request.UpdateDelegate.Invoke(configuration); writer.Write(request.Section, configuration); messenger.Send(new ConfigurationChanged(configuration)); } } }