コード例 #1
0
 public static IEventsBuilder HandlersFromAssemblyOf(this IEventsBuilder me, Type typeOfAssembly)
 {
     foreach (var handler in typeOfAssembly.Assembly.GetTypes().Where(t => t.IsSubclassOfRawGeneric(typeof(IEventHandler <>))))
     {
         HandlersFromType(me, handler);
     }
     return(me);
 }
コード例 #2
0
 public static IEventsBuilder HandlersFromType(this IEventsBuilder me, Type typeOfEventHandlers)
 {
     foreach (var inter in typeOfEventHandlers.GetInterfaces().Where(t => t.IsSubclassOfRawGeneric(typeof(IEventHandler <>))))
     {
         me.FuxionBuilder.Services.AddScoped(inter, typeOfEventHandlers);
         if (me.FuxionBuilder.TypeKeyDirectory.ContainsKey(inter.GetGenericArguments()[0].GetTypeKey()))
         {
             if (me.FuxionBuilder.TypeKeyDirectory[inter.GetGenericArguments()[0].GetTypeKey()] != inter.GetGenericArguments()[0])
             {
                 throw new InvalidProgramException("");
             }
         }
         else
         {
             me.FuxionBuilder.TypeKeyDirectory.Register(inter.GetGenericArguments()[0]);
         }
     }
     return(me);
 }
コード例 #3
0
 public static void UseBus <TBus>(this IEventsBuilder builder) where TBus : IEventBus
 {
     builder.Services.Replace(ServiceDescriptor.Singleton(typeof(IEventBus), typeof(TBus)));
 }
コード例 #4
0
 public static void UseBus(this IEventsBuilder builder, Func <IServiceProvider, IEventBus> implementationFactory)
 {
     builder.Services.Replace(ServiceDescriptor.Singleton(implementationFactory));
 }
コード例 #5
0
 public EventsController(ApplicationDbContext db, IEventsBuilder eventBuilder)
 {
     _db           = db;
     _eventBuilder = eventBuilder;
 }
コード例 #6
0
 public static IEventsBuilder Subscribe <TEvent>(this IEventsBuilder me, Func <IServiceProvider, IEventSubscriber> eventSubscriber) where TEvent : Event
 {
     me.FuxionBuilder.Services.AddTransient(sp => new EventSubscription(typeof(TEvent)));
     return(me);
 }
コード例 #7
0
 public static IEventsBuilder HandlersFromAssemblyOf <T>(this IEventsBuilder me) => HandlersFromAssemblyOf(me, typeof(T));
コード例 #8
0
 public static IEventsBuilder HandlersFromType <T>(this IEventsBuilder me) => HandlersFromType(me, typeof(T));
コード例 #9
0
ファイル: HomeController.cs プロジェクト: Ceodore/calendar
 public HomeController(IEventsBuilder eventsBuilder, ICalendarBuilder calendarBuilder)
 {
     _eventsBuilder   = eventsBuilder;
     _calendarBuilder = calendarBuilder;
 }