Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public async Task AddEvents_NoEventIsRegeistered()
        {
            var repository = new Mock <IQueueRepository>();

            var hangfireQueue       = new HangfireQueue(new EventJobRegistration(), repository.Object);
            var userUpdateNameEvent = new UserUpdateNameEvent("Peter", Guid.NewGuid());
            var events = new List <DomainEventBase> {
                userUpdateNameEvent
            };

            await hangfireQueue.AddEvents(events);

            repository.Verify(repo => repo.AddEventForJob(It.IsAny <EventAndJob>()), Times.Never);
        }
Ejemplo n.º 3
0
        public async Task AddEvents_OneEvent()
        {
            var repository = new Mock <IQueueRepository>();

            var hangfireQueue      = new HangfireQueue(new EventJobRegistration(), repository.Object);
            var userUpdateAgeEvent = new UserUpdateAgeEvent(14, Guid.NewGuid());
            var events             = new List <DomainEventBase> {
                userUpdateAgeEvent
            };

            await hangfireQueue.AddEvents(events);

            repository.Verify(repo => repo.AddEventForJob(It.Is <EventAndJob>(job => job.DomainEvent == userUpdateAgeEvent)), Times.Once);
        }