public IActionResult Approve(Guid id, Guid userId) { var query = new GetProjectQuery(id); var project = _bus.PublishQuery(query); // validation if (project == null) { return(NotFound()); } var command = new ApproveTeamUserCommand(userId, id); _bus.PublishCommand(command); return(Ok()); }
public void Handle(ProjectCreatedEvent domainEvent) { Console.WriteLine(domainEvent.AggregateId + " " + domainEvent.Type + " " + domainEvent.JsonPayload); dynamic eventData = JsonConvert.DeserializeObject(domainEvent.JsonPayload); var projectOwner = new User((Guid)eventData.OwnerId); var newTeam = new Team(); newTeam.Create( domainEvent.AggregateId, projectOwner); _teamRepository.Add(newTeam); // the creator is by default part of the team. var joinCommand = new JoinTeamCommand(projectOwner.Id, domainEvent.AggregateId); var approveCommand = new ApproveTeamUserCommand(projectOwner.Id, domainEvent.AggregateId); _bus.PublishCommand(joinCommand); _bus.PublishCommand(approveCommand); }