public async Task <HookResult> Execute(UserUpdateNameEvent domainEvent) { var withPostNumberQuery = await _queryRepo.Load(domainEvent); foreach (var numberQuery in withPostNumberQuery) { numberQuery.Apply(domainEvent); await _queryRepo.Update(numberQuery); } return(await Task.FromResult(HookResult.OkResult())); }
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); }
public async Task AddEvents_OneEventIsNotRegisteredForJob() { var repository = new Mock <IQueueRepository>(); var hangfireQueue = new HangfireQueue(new EventJobRegistration(), repository.Object); var userUpdateAgeEvent = new UserUpdateAgeEvent(14, Guid.NewGuid()); var userUpdateNameEvent = new UserUpdateNameEvent("Peter", Guid.NewGuid()); var events = new List <DomainEventBase> { userUpdateAgeEvent, userUpdateNameEvent, userUpdateAgeEvent }; await hangfireQueue.AddEvents(events); repository.Verify(repo => repo.AddEventForJob(It.Is <EventAndJob>(job => job.DomainEvent == userUpdateAgeEvent)), Times.Exactly(2)); repository.Verify(repo => repo.AddEventForJob(It.Is <EventAndJob>(job => job.DomainEvent == userUpdateNameEvent)), Times.Never); }
public void Apply(UserUpdateNameEvent domainEvent) { Name = domainEvent.Name; }
public Task <List <UserWithPostNumberQuery> > Load(UserUpdateNameEvent domainEvent) { return(Task.FromResult(_context.UserWithPostNumberQuerys.Where(query => query.RootEntityId == domainEvent.EntityId).ToList())); }