public async Task <User> Handle(CreateUserCommand request, CancellationToken cancellationToken) { var user = await _repository.Add(new User { Email = request.Email, FirstName = request.FirstName, LastName = request.LastName }); await _dbContext.SaveChangesAsync(cancellationToken); // burada event fırlatılacak (CreatedUserEvent) await _massTransitEventProducer.Publish(new UserCreatedEvent { Email = user.Email, Id = user.Id, FirstName = user.FirstName, LastName = user.LastName }); return(user); }
public async Task <Domain.Customer> Handle(UpdateCustomerCommand request, CancellationToken cancellationToken) { var customer = await _repository.GetById(request.Id); customer.Email = request.Email; customer.FirstName = request.FirstName; customer.LastName = request.LastName; var result = await _repository.Update(customer); await _dbContext.SaveChangesAsync(cancellationToken); // CustomerUpdatedEvent produce edilecek await _eventProducer.Publish(new UserUpdatedEvent { Id = result.Id, Email = result.Email, FirstName = result.FirstName, LastName = result.LastName }); return(result); }