public static IEventFlowOptions AddEventUpgraders( this IEventFlowOptions eventFlowOptions, params Type[] eventUpgraderTypes) { return(eventFlowOptions .AddEventUpgraders((IEnumerable <Type>)eventUpgraderTypes)); }
public static IEventFlowOptions AddEventUpgraders( this IEventFlowOptions eventFlowOptions, Assembly fromAssembly, Predicate <Type> predicate = null) { predicate = predicate ?? (t => true); var eventUpgraderTypes = fromAssembly .GetTypes() .Where(t => t.GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IEventUpgrader <,>))) .Where(t => predicate(t)); return(eventFlowOptions .AddEventUpgraders(eventUpgraderTypes)); }
public static IEventFlowOptions AddEventUpgraders( this IEventFlowOptions eventFlowOptions, Assembly fromAssembly, Predicate <Type> predicate = null) { predicate = predicate ?? (t => true); var eventUpgraderTypes = fromAssembly .GetTypes() .Where(t => t.GetTypeInfo().GetInterfaces().Any(IsEventUpgraderInterface)) .Where(t => !t.HasConstructorParameterOfType(IsEventUpgraderInterface)) .Where(t => predicate(t)); return(eventFlowOptions .AddEventUpgraders(eventUpgraderTypes)); }