public void Handle(PersonUpdatedEvent @event, DatabaseContext db) { var aggregate = @event.Person; var personReadModel = db.Set <PersonReadModel>() .FirstOrDefault(readModel => readModel.AggregateRootId == aggregate.Id); if (personReadModel != null) { var homePhoneNumber = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Home); var officePhoneNumber = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Office); var mobilePhoneNumber = aggregate.PhoneNumbers?.FirstOrDefault(phone => phone.PhoneNumberType == PhoneNumberType.Mobile); var relatedPersons = aggregate.RelatedPersons == null ? string.Empty : JsonConvert.SerializeObject(aggregate.RelatedPersons); personReadModel.ChangeDetails(aggregate.Id, aggregate.FirstName, aggregate.LastName, aggregate.IdentificationNumber, aggregate.BirthDate, aggregate.CityId, aggregate.Photo.FilePath, aggregate.Photo.Height, aggregate.Photo.Width, aggregate.Gender.ToString(), relatedPersons, homePhoneNumber?.Number, officePhoneNumber?.Number, mobilePhoneNumber?.Number); db.Set <PersonReadModel>().Update(personReadModel); } }
/// <summary> /// Update Reporting Data /// During Update first check wheather previous data and new data are same or different /// </summary> /// <param name="evt"></param> public void Handle(PersonUpdatedEvent evt) { var person = _reportingRepository.GetById <Person>(evt.Id); if (person.FirstName != evt.FirstName) { person.FirstName = evt.FirstName; } if (person.LastName != evt.LastName) { person.LastName = evt.LastName; } if (person.Age != evt.Age) { person.Age = evt.Age; } _reportingRepository.Modify <Person>(person); }
public async Task TestPersonUpdateEventHandler() { //Arrange await SetupData(); var handler = new PersonUpdatedEventHandler(PersonFamilyTreeRepository); var @event = new PersonUpdatedEvent() { OldPersonData = CreatePerson2(), NewPersonData = CreatePerson3(), }; //Act await handler.Handle(@event); //Assert var result = await PersonFamilyTreeRepository.GetFamilyTree("3", 2); Assert.NotEmpty(result.Nodes.Where(item => item.Id == "5")); Assert.Empty(result.Nodes.Where(item => item.Id == "1")); Assert.Empty(result.Nodes.Where(item => item.Id == "2")); }
public async Task TestPersonUpdatedEventHandler() { //Arrange var handler = new PersonUpdatedEventHandler(PersonCategoryRepository, PersonPerCityCounterRepository, TransactionManager); var @event = new PersonUpdatedEvent() { OldPersonData = CreatePerson1(), NewPersonData = CreatePerson2() }; //Act var resultOld = await GetCategory(@event.OldPersonData); var resultNew = await GetCategory(@event.NewPersonData); var expectedOld = resultOld[0]; var expectedNew = resultNew[0]; expectedOld.Count = Math.Max(expectedOld.Count - 1, 0); expectedNew.Count++; await handler.Handle(@event); resultOld = await GetCategory(@event.OldPersonData); resultNew = await GetCategory(@event.NewPersonData); var obtainedOld = resultOld[0]; var obtainedNew = resultNew[0]; //Assert Assert.Equal(expectedOld.Count, obtainedOld.Count); Assert.Equal(expectedNew.Count, obtainedNew.Count); }
public Task Handle(PersonUpdatedEvent @event, CancellationToken cancellationToken) { // Send some notification by updated post return(_hubContext.Clients.All.SendAsync("personUpdated", @event, cancellationToken)); }
public Task Handle(PersonUpdatedEvent notification, CancellationToken cancellationToken) { //Envia alguma notificação de e-mail, por exemplo return(Task.CompletedTask); }
public Task Handle(PersonUpdatedEvent notification, CancellationToken cancellationToken) { return(Task.CompletedTask); }