public async Task <IActionResult> LeaveTeam([FromBody] TeamSignoutDTO signoutDTO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = int.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value); var team = await teamService.GetTeamById(signoutDTO.TeamId); if (team == null || !team.Members.Any(m => m.Id == signoutDTO.UserId)) { return(NotFound()); } if (team.TeamLeader.Id != userId && signoutDTO.UserId != userId) { return(Forbid()); } await teamService.RemoveTeamMember(signoutDTO); return(Ok()); }
public async Task <int> RemoveTeamMember(TeamSignoutDTO signoutDTO) { return(await teamRepository.RemoveTeamMember(signoutDTO.UserId, signoutDTO.TeamId)); }