public void ThenShouldNotHaveAPendingMembershipForTeam(string userId, int teamId) { var teamQuery = new GetTeamByIdQuery(teamId); Team team = context.Dispatcher.ExecuteQuery(teamQuery); team.Members.Any(x => x.User.Id == userId && x.Status == MembershipStatus.Pending).Should().BeFalse(); }
public IActionResult GetTeamById([FromRoute] int teamId) { var query = new GetTeamByIdQuery(teamId); var result = QueryDispatcher.Retrive <GetTeamByIdQueryResult, GetTeamByIdQuery>(query); if (result == null) { return(BadRequest()); } return(Ok(result)); }
public override void Execute(JoinTeamCommand command, ICommandAndQueryDispatcher dispatcher) { var teamQuery = new GetTeamByIdQuery(command.TeamId); Team team = dispatcher.ExecuteQuery(teamQuery); if (UserIsNotAMemberOfTeam(command.GetUserId, team)) { var userQuery = new GetUserByIdQuery(command.GetUserId); team.Members.Add(new TeamMembership(dispatcher.ExecuteQuery(userQuery), MembershipStatus.Pending)); } db.SaveChanges(); }
public async Task<IActionResult> GetTeamById([FromRoute] GetTeamByIdQuery query) { _logger.LogInformation(LoggingEvents.GetItem, "Getting team {id}", query.Id); var team = await CommandAsync(query); if (team == null) { _logger.LogWarning(LoggingEvents.GetItemNotFound, "Team {id} not found", query.Id); return NotFound(); } return Ok(team); }
public override void Execute(UpdateMembershipStatusCommand command, ICommandAndQueryDispatcher dispatcher) { var getTeamQuery = new GetTeamByIdQuery(command.TeamId); Team team = dispatcher.ExecuteQuery(getTeamQuery); if (!team.Owner.IsCurrentUser()) { throw new InvalidOperationException("Only the owner of the team can update the membership status"); } TeamMembership teamMembership = team.Members.Single(m => m.User.Id == command.UserIdToUpdate); teamMembership.Status = command.NewStatus; db.SaveChanges(); }