public async Task <Response <TeamDTO> > Update(Guid teamId, Guid userId, TeamUpdateDTO dto) { var teamEntity = await _repository.GetById(teamId); if (teamEntity == null) { return(new BusinessConflictErrorResponse <TeamDTO>(new [] { new Error { Code = ErrorCodes.Common.NotFound, Message = ErrorMessages.Common.NotFound, Field = "teamId" } })); } var teamUser = await _teamsUsersRepository.GetTeamUser(teamId, userId); if (teamUser == null) { return(new BusinessConflictErrorResponse <TeamDTO>(new [] { new Error { Code = ErrorCodes.Common.NotFound, Message = ErrorMessages.Common.NotFound, Field = "userId" } })); } if (teamUser.Status != MembershipStatus.SuperAdmin) { return(new ForbiddenErrorResponse <TeamDTO>(new [] { new Error { Code = ErrorCodes.Security.Forbidden, Message = ErrorMessages.Security.Forbidden } })); } teamEntity.Name = dto.Name; teamEntity.ColorHex = dto.ColorHex; teamEntity = await _repository.Update(teamEntity); var result = _mapper.Map <TeamModel, TeamDTO>(teamEntity); return(new Response <TeamDTO> { Data = result }); }
public async Task <Response> AddUserToTeam(Guid teamId, Guid userId, MembershipStatus membershipStatus) { var team = await _teamsRepository.GetById(teamId); await AddUserToCompany(team.CompanyId, userId, membershipStatus); var teamUser = await _teamsUsersRepository.GetTeamUser(teamId, userId); if (teamUser == null) { await _teamsUsersRepository.AddTeamUser(teamId, userId, membershipStatus); } return(new Response()); }