示例#1
0
        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
            });
        }
示例#2
0
        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());
        }