namespace TheXamlGuy.Framework.Core { public class WriteHandler : IMediatorHandler> where TConfiguration : class { private readonly IEventAggregator eventAggregator; private readonly TConfiguration configuration; private readonly IConfigurationWriter writer; public WriteHandler(TConfiguration configuration, IConfigurationWriter writer, IEventAggregator eventAggregator) { this.eventAggregator = eventAggregator; this.configuration = configuration; this.writer = writer; } public void Handle(Write request) { request.UpdateDelegate.Invoke(configuration); writer.Write(request.Section, configuration); eventAggregator.Publish(new ConfigurationChanged(configuration)); } } }