using System; using Microsoft.Extensions.DependencyInjection; using OpenHarbor.CQRS.DynamicQuery.AspNetCore.Mvc; namespace OpenHarbor.CQRS.DynamicQuery.AspNetCore; public static class MvcBuilderExtensions { public static IMvcBuilder AddOpenHarborDynamicQueries(this IMvcBuilder builder, Action configuration = null) { var options = new DynamicQueryControllerOptions(); configuration?.Invoke(options); var services = builder.Services; var serviceProvider = services.BuildServiceProvider(); builder.AddMvcOptions(o => o.Conventions.Add(new DynamicQueryControllerConvention(serviceProvider))); builder.ConfigureApplicationPartManager(m => m.FeatureProviders.Add(new DynamicQueryControllerFeatureProvider(serviceProvider))); return builder; } }