public async Task Handle(CompetitorNameChanged message) { var updateBuilder = new UpdateDefinitionBuilder <CompetitorDto>(); _repository.Update(message.AggregateId, updateBuilder.Set(s => s.Name, message.Name)); var fixtureMap = _repository.Get <CompetitorToFixtureMapDto>(message.AggregateId); var updateFixtureBuilder = new UpdateDefinitionBuilder <FixtureDto>(); var updateDefinition1 = updateFixtureBuilder.Set(s => s.Competitor1.Name, message.Name); var updateDefinition2 = updateFixtureBuilder.Set(s => s.Competitor2.Name, message.Name); foreach (var fixtureId in fixtureMap.FixtureIds) { var fixture = _repository.Get <FixtureDto>(fixtureId); if (fixture.Competitor1.Id == message.AggregateId) { _repository.Update(fixtureId, updateDefinition1); } if (fixture.Competitor2.Id == message.AggregateId) { _repository.Update(fixtureId, updateDefinition2); } } Console.WriteLine($"Handled competitor name changed event {message.AggregateId}:{message.Name}"); }
public async Task Handle(FixtureCreated message) { var competitor1 = _repository.Get <CompetitorDto>(message.Competitor1); var competitor2 = _repository.Get <CompetitorDto>(message.Competitor2); var sport = _repository.Get <SportDto>(message.SportId); _repository.Add(new FixtureDto { Id = message.AggregateId, Title = message.Title, Sport = sport, Competitor1 = competitor1, Competitor2 = competitor2 }); Console.WriteLine($"Handled fixture created event {message.AggregateId}:{message.Title}"); }
public Task Handle(SportNameChanged message) { var updateBuilder = new UpdateDefinitionBuilder <SportDto>(); _repository.Update(message.AggregateId, updateBuilder.Set(s => s.Name, message.Name)); var fixtureMap = _repository.Get <SportToFixtureMapDto>(message.AggregateId); var updateFixtureBuilder = new UpdateDefinitionBuilder <FixtureDto>(); var updateDefinition = updateFixtureBuilder.Set(s => s.Sport.Name, message.Name); foreach (var fixtureId in fixtureMap.FixtureIds) { _repository.Update(fixtureId, updateDefinition); } Console.WriteLine($"Handled sport name changed event {message.AggregateId}:{message.Name}"); return(Task.CompletedTask); }