private ActionResult JoinExistingTeam(int?teamId) { var command = new JoinTeamCommand(teamId.Value, HttpContext.User.Identity.GetUserId()); dispatcher.ExecuteCommand(command); return(RedirectToAction("Index")); }
public IActionResult Join(Guid id, [FromBody] Guid userId) { var query = new GetProjectQuery(id); var project = _bus.PublishQuery(query); // validation if (project == null) { return(NotFound()); } var command = new JoinTeamCommand(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); }
public void GivenHasPendingMembershipForTeam(string userId, int teamId) { var command = new JoinTeamCommand(teamId, userId); context.Dispatcher.ExecuteCommand(command); }