Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 public async Task <int> RemoveTeamMember(TeamSignoutDTO signoutDTO)
 {
     return(await teamRepository.RemoveTeamMember(signoutDTO.UserId, signoutDTO.TeamId));
 }