using Serilog.Configuration; using LogViewer.Core; using Serilog.Sinks.LogView.Core.Logging; namespace Serilog.Sinks.LogView.Core.Extensions; public static class DataStoreLoggerSinkExtensions { public static LoggerConfiguration DataStoreLoggerSink ( this LoggerSinkConfiguration loggerConfiguration, Func dataStoreProvider, Action? configuration = null, IFormatProvider formatProvider = null! ) => loggerConfiguration.Sink(new DataStoreLoggerSink(dataStoreProvider, GetConfig(configuration), formatProvider)); private static Func GetConfig(Action? configuration) { // convert from Action to Func delegate to pass data DataStoreLoggerConfiguration data = new(); configuration?.Invoke(data); return () => data; } }