using Microsoft.Extensions.DependencyInjection; namespace zero.Backoffice; public static class ServiceCollectionExtensions { public static ZeroBuilder AddBackoffice(this ZeroBuilder builder) where T : ZeroBackofficePlugin, IZeroPlugin, new() { return builder.AddBackoffice(); } public static ZeroBuilder AddBackoffice(this ZeroBuilder builder) { return builder.AddBackoffice(); } public static ZeroBuilder AddBackoffice(this ZeroBuilder builder, Action options) where T : ZeroBackofficePlugin, IZeroPlugin, new() { return builder.AddPlugin(services => { T plugin = new T(); plugin.PostConfigureServices = (services, configuration) => { services.Configure(opts => options(opts)); }; return plugin; }); } public static ZeroBuilder AddStories(this ZeroBuilder builder, Action options) { return builder.AddBackoffice(options); } }