using LiteCharms.Features.ServiceBus; using LiteCharms.Features.ServiceBus.Abstractions; using LiteCharms.Features.ServiceBus.Exchanges; using LiteCharms.Features.ServiceBus.Queues; namespace LiteCharms.Features.Extensions; public static class ServiceBus { public static IServiceCollection AddGeneralServiceBus(this IServiceCollection services) => services .AddSingleton() .AddHostedService() .AddKeyedSingleton(Constants.GeneralServiceBus) .AddMemoryCache(); public static IServiceCollection AddEmailServiceBus(this IServiceCollection services) => services .AddSingleton() .AddHostedService() .AddKeyedTransient(Constants.EmailServiceBus) .AddMemoryCache(); public static IServiceCollection AddSalesServiceBus(this IServiceCollection services) => services .AddSingleton() .AddHostedService() .AddKeyedSingleton(Constants.SalesServiceBus) .AddMemoryCache(); }