internal MessageDispatcher(IServiceScopeFactory scopeFactory, IReceiverClient client, MessageHandlerRegistry registry, LogCorrelationOptions logCorrelationOptions) { LogCorrelationOptions = logCorrelationOptions; ScopeFactory = scopeFactory; Client = client; Registry = registry; }
internal LogCorrelationHandler(bool useCorrelationLogging, LogCorrelationOptions options = null) { if (!useCorrelationLogging) { PushToLogContext = (message) => new EmptyContextPusher(); } else { var logPropertyName = options?.LogPropertyName ?? "CorrelationId"; var messagePropertyName = options?.MessagePropertyName ?? "logCorrelationId"; PushToLogContext = CreatePushToLogContext(logPropertyName, messagePropertyName, options?.SetCorrelationLogId); } }
public static IServiceCollection ConfigureMessagingWithCorrelationLogging(this IServiceCollection services, LogCorrelationOptions logCorrelationOptions, params Assembly[] assemblies) { var logCorrelationHandler = new LogCorrelationHandler(true, logCorrelationOptions); return(services.ConfigureMessaging(logCorrelationHandler, assemblies)); }
public static IServiceCollection ConfigureMessagingWithCorrelationLogging(this IServiceCollection services, LogCorrelationOptions logCorrelationOptions) { var logCorrelationHandler = new LogCorrelationHandler(true, logCorrelationOptions); return(services.ConfigureMessaging(logCorrelationHandler, new[] { Assembly.GetCallingAssembly() })); }
public MessagingConfiguration(IOptions <MessageSources> messageSources, MessageHandlerRegistry registry, IServiceScopeFactory scopeFactory, LogCorrelationOptions logCorrelationOptions) { SubscriptionClient CreateSubscriptionClient(Subscription s) => new SubscriptionClient(new ServiceBusConnectionStringBuilder(s.ConnectionString), s.Name); QueueClient CreateQueueClient(Queue q) => new QueueClient(new ServiceBusConnectionStringBuilder(q.ConnectionString)); Dispatchers = messageSources .Value .Subscriptions .Select(subscription => new MessageDispatcher(scopeFactory, CreateSubscriptionClient(subscription), registry, logCorrelationOptions)) .Concat( messageSources .Value .Queues .Select(queue => new MessageDispatcher(scopeFactory, CreateQueueClient(queue), registry, logCorrelationOptions)) ) .ToList(); }
private static IServiceCollection ConfigureMessaging(this IServiceCollection services, LogCorrelationOptions logCorrelationOptions, Assembly assembly = null) { if (logCorrelationOptions == null) { throw new ArgumentNullException(nameof(logCorrelationOptions)); } assembly = assembly ?? Assembly.GetCallingAssembly(); MessageHandlerTypes .GetAll(assembly) .ToList() .ForEach(t => services.AddTransient(t)); services .AddSingleton <MessagingConfiguration>() .AddSingleton(p => new MessageHandlerRegistry(() => MessageHandlerTypes.GetAll(assembly))) .AddSingleton(logCorrelationOptions) .AddHostedService <MessagingService>(); return(services); }
public static IServiceCollection ConfigureMessagingWithCorrelationLogging(this IServiceCollection services, string logPropertyName, string messagePropertyName, Assembly assembly = null) { var logCorrelationOptions = new LogCorrelationOptions(logPropertyName, messagePropertyName); return(services.ConfigureMessaging(logCorrelationOptions, assembly)); }
public static IServiceCollection ConfigureMessagingWithCorrelationLogging(this IServiceCollection services, Assembly assembly = null) { var logCorrelationOptions = new LogCorrelationOptions(); return(services.ConfigureMessaging(logCorrelationOptions, assembly)); }