#nullable enable using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Svrnty.CQRS.Abstractions.Discovery; using Svrnty.CQRS.Configuration; using Svrnty.CQRS.Discovery; namespace Svrnty.CQRS; public static class ServiceCollectionExtensions { /// /// Adds Svrnty CQRS services with fluent configuration /// public static IServiceCollection AddSvrntyCqrs(this IServiceCollection services, Action? configure = null) { var builder = new CqrsBuilder(services); configure?.Invoke(builder); builder.Build(); // Execute deferred registrations return services; } public static IServiceCollection AddDefaultQueryDiscovery(this IServiceCollection services) { services.TryAddTransient(); return services; } public static IServiceCollection AddDefaultCommandDiscovery(this IServiceCollection services) { services.TryAddTransient(); return services; } }