Beispiel #1
0
        public async Task RaiseAsync(IPresentationEvent domainEvent)
        {
            var eventType = domainEvent.GetType();
            var eventHandlerType = typeof(IHandlePresentationEventAsync<>).MakeGenericType(eventType);
            var eventHandlerListType = typeof(IEnumerable<>).MakeGenericType(eventHandlerType);
            var eventHandlers = (IEnumerable)_context.Resolve(eventHandlerListType);

            foreach (var handler in eventHandlers)
            {
                var handleMethod = GetHandleMethod(eventType, eventHandlerType);
                var result = handleMethod.Invoke(handler, new object[] { domainEvent });
                if (result is Task)
                {
                    await ((Task)result);
                }
            }
        }
Beispiel #2
0
 public async void Raise(IPresentationEvent domainEvent)
 {
     await RaiseAsync(domainEvent);
 }