public static IServiceCollection AddSeaOrDewHandlers(this IServiceCollection services, Action <SeaOrDewOptions> optionsSetup) { var options = new SeaOrDewOptions(); optionsSetup?.Invoke(options); return(services.AddSeaOrDewHandlers(options)); }
public static void LoadQueryHandlersFromAssemblyUnderNamespace( this SeaOrDewOptions options, Assembly assembly, string namespacePrefix) { options.LoadQueryHandlers(new HandlerSource(assembly, namespacePrefix)); }
public static void LoadAllHandlersFromAssembly( this SeaOrDewOptions options, Assembly assembly) { options.LoadCommandHandlersFromAssembly(assembly); options.LoadQueryHandlersFromAssembly(assembly); }
public static void LoadAssemblyHandlersUnderNamespace( this SeaOrDewOptions options, Assembly assembly, string namespacePrefix) { options.LoadCommandHandlersFromAssemblyUnderNamespace(assembly, namespacePrefix); options.LoadQueryHandlersFromAssemblyUnderNamespace(assembly, namespacePrefix); }
public static IServiceCollection AddSeaOrDewHandlers(this IServiceCollection services, SeaOrDewOptions options = null) { var descriptors = new[] { new ServiceDescriptor(typeof(QueryHandler), typeof(QueryHandler), options?.ServiceLifetime ?? ServiceLifetime.Scoped), new ServiceDescriptor(typeof(CommandHandler), typeof(CommandHandler), options?.ServiceLifetime ?? ServiceLifetime.Scoped) }; if (options?.TryAdd == true) { services.TryAdd(descriptors); } else { services.Add(descriptors); } if (options != null) { foreach (var handlerSource in options.CommandHandlerAssemblies) { AddInstancesOfGenericTypeDefinition(services, handlerSource.Assembly, handlerSource.NamespacePrefix, typeof(ICustomCommandHandler <,>), options.ServiceLifetime, options.TryAdd); } foreach (var handlerSource in options.QueryHandlerAssemblies) { AddInstancesOfGenericTypeDefinition(services, handlerSource.Assembly, handlerSource.NamespacePrefix, typeof(IQueryHandler <,>), options.ServiceLifetime, options.TryAdd); } } return(services); }
public static void LoadQueryHandlersFromAssembly( this SeaOrDewOptions options, Assembly assembly) { options.LoadQueryHandlers(new HandlerSource(assembly)); }