コード例 #1
0
        public Task <IEnumerable <EventModel> > GetAsync(IEnumerable <string> eventTypes)
        {
            if ((supportedMethod & Method.GetOfTypes) == Method.GetOfTypes)
            {
                return(rebuilderStore.GetAsync(eventTypes));
            }

            return(Task.FromResult(Enumerable.Empty <EventModel>()));
        }
コード例 #2
0
ファイル: Rebuilder.cs プロジェクト: wangjun009xx/Money
        /// <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);
            }
        }