コード例 #1
0
        public async Task Run()
        {
            var events = await HangfireQueue.GetEvents("OnUserCreateCreateQuery");

            var handledEvents = new List <EventAndJob>();
            var enumerator    = events.GetEnumerator();

            for (
                ; enumerator.MoveNext();
                )
            {
                var eventWrapper = enumerator.Current;
                var domainEvent  = (UserCreateEvent)eventWrapper.DomainEvent;
                var entity       = await UserRepository.GetUser(domainEvent.Id);

                var newCreateEvent = new UserCreateEvent(entity, domainEvent.EntityId);
                var hookResult     = await AsyncHook.Execute(newCreateEvent);

                if (hookResult.Ok)
                {
                    handledEvents.Add(eventWrapper);
                }
            }
            await HangfireQueue.RemoveEventsFromQueue(handledEvents);
        }