public static IDomainContainer AddEvents( this IDomainContainer domainContainer, Assembly fromAssembly, Predicate <Type> predicate = null) { predicate = predicate ?? (t => true); var aggregateEventTypes = fromAssembly .GetTypes() .Where(t => !t.GetTypeInfo().IsAbstract&& typeof(IAggregateEvent).GetTypeInfo().IsAssignableFrom(t)) .Where(t => predicate(t)); return(domainContainer.AddEvents(aggregateEventTypes)); }
public static IDomainContainer AddDefaults( this IDomainContainer domainContainer, Assembly fromAssembly, Predicate <Type> predicate = null) { return(domainContainer .AddEvents(fromAssembly, predicate) .AddJobs(fromAssembly, predicate) .AddCommands(fromAssembly, predicate) .AddCommandHandlers(fromAssembly, predicate) .AddMetadataProviders(fromAssembly, predicate) .AddSubscribers(fromAssembly, predicate) .AddQueryHandlers(fromAssembly, predicate)); }
public static IDomainContainer AddEvents( this IDomainContainer domainContainer, params Type[] aggregateEventTypes) { return(domainContainer.AddEvents((IEnumerable <Type>)aggregateEventTypes)); }