public Task <IEnumerable <EventModel> > GetAsync(IEnumerable <string> eventTypes) { if ((supportedMethod & Method.GetOfTypes) == Method.GetOfTypes) { return(rebuilderStore.GetAsync(eventTypes)); } return(Task.FromResult(Enumerable.Empty <EventModel>())); }
/// <summary> /// Pushlishes all events on the registered handlers using <see cref="Add"/>. /// </summary> /// <returns>The continuation task.</returns> public async Task RunAsync() { // Use list of required event types to load events from store. IEnumerable <string> eventTypes = eventDispatcher .EnumerateEventTypes() .Select(t => t.AssemblyQualifiedName); IEnumerable <EventModel> eventData = await store.GetAsync(eventTypes); IEnumerable <IEvent> events = eventData .Where(IsFilterPassed) .Select(e => deserializer.DeserializeEvent(Type.GetType(e.EventKey.Type), e.Payload)); // Replay events on handler(s). foreach (IEvent payload in events) { await eventDispatcher.PublishAsync(payload); } }