public async Task <IActionResult> RemoveUserFromTeam([FromBody] TeamUserDto teamUserDto)
        {
            var team = await _teamRepository.GetByTeamName(teamUserDto.TeamName);

            if (team == null)
            {
                return(BadRequest($"Unknown team: {teamUserDto.TeamName}."));
            }
            var user = await _userRepository.GetByUsername(teamUserDto.UserName);

            if (user == null)
            {
                return(BadRequest($"Unknown user: {teamUserDto.UserName}."));
            }
            var removed = false;

            foreach (var middleRecord in team.UsersTeams)
            {
                if (middleRecord.User.Username == user.Username)
                {
                    team.UsersTeams.Remove(middleRecord);
                    removed = true;
                    break;
                }
            }
            var countOfCommits = await _teamRepository.SaveChangesAsync();

            if (countOfCommits > 0 && removed)
            {
                return(Ok($"The user: {user.Username} was removed from team: {team.TeamName} successfully."));
            }
            return(BadRequest($"The user: {user.Username} was not removed from team: {team.TeamName} successfully."));
        }
        public async Task <IActionResult> PostUserToTeam([FromBody] TeamUserDto teamUserDto)
        {
            var user = await _userRepository.GetByUsername(teamUserDto.UserName);

            if (user == null)
            {
                return(BadRequest($"Unknown user: {teamUserDto.UserName}."));
            }
            var team = await _teamRepository.GetByTeamName(teamUserDto.TeamName);

            if (team == null)
            {
                return(BadRequest($"Unknown team: {teamUserDto.TeamName}."));
            }
            foreach (var userUsersTeam in user.UsersTeams)
            {
                if (userUsersTeam.TeamId == team.TeamId)
                {
                    return(BadRequest($"User: {teamUserDto.UserName} already exist in team: {teamUserDto.TeamName}."));
                }
            }
            team.UsersTeams.Add(new UserTeam()
            {
                UserId = user.SubjectId
            });
            var countOfCommits = await _teamRepository.SaveChangesAsync();

            if (countOfCommits > 0)
            {
                return(Ok($"User:{teamUserDto.UserName} was added to the team:{teamUserDto.TeamName} successfully!"));
            }
            return(BadRequest(
                       $"Something went wrong. User: {teamUserDto.UserName} wasn't added to the team successfully."));
        }
        public void PostUserToTeamMustReturnsBadRequestsIfThereIsNotSuchTeam()
        {
            var validUserName = "******";
            var validUser     = new User()
            {
                Username = validUserName
            };

            _userRepository.Setup(rep => rep.GetByUsername(validUserName)).ReturnsAsync(validUser);
            var invalidTeamName = "INVALID_TEAM_NAME";

            _teamRepository.Setup(rep => rep.GetByTeamName(invalidTeamName)).ReturnsAsync(null as Team);
            var expectedAnswer = $"Unknown team: {invalidTeamName}.";
            var userTeamDto    = new TeamUserDto()
            {
                UserName = validUserName, TeamName = invalidTeamName
            };

            var actualResult = _teamsController.PostUserToTeam(userTeamDto).Result;

            Assert.IsInstanceOf <BadRequestObjectResult>(actualResult);
            var actualRequestValue = (actualResult as BadRequestObjectResult)?.Value;

            Assert.NotNull(actualRequestValue);
            Assert.AreEqual(expectedAnswer, actualRequestValue);
        }
示例#4
0
        public void InvalidUserIdTest()
        {
            var         teamDto = SeedTeam();
            TeamUserDto dto     = new TeamUserDto()
            {
                TeamUserId = Guid.NewGuid(),
                TeamId     = teamDto.TeamId,
                UserId     = Guid.NewGuid()
            };

            var result = Service.AddTeamUser(dto);

            Assert.IsFalse(result.IsSuccess);

            DeleteSeededTeam(teamDto.TeamId);
        }
示例#5
0
        public void InvalidTeamUserIdTest()
        {
            var teamDto = SeedTeam();
            var userDto = SeedUser();

            TeamUserDto dto = new TeamUserDto()
            {
                TeamUserId = Guid.Empty,
                TeamId     = teamDto.TeamId,
                UserId     = userDto.UserId
            };

            var result = Service.UpdateTeamUser(dto);

            Assert.IsFalse(result.IsSuccess);

            DeleteSeededUser(userDto.UserId);
            DeleteSeededTeam(teamDto.TeamId);
        }
示例#6
0
        public void AddRemoveTeamUserTest()
        {
            var teamDto  = SeedTeam();
            var userDto  = SeedUser();
            var user2Dto = SeedUser();

            TeamUserDto dto = new TeamUserDto()
            {
                TeamUserId = Guid.NewGuid(),
                TeamId     = teamDto.TeamId,
                UserId     = userDto.UserId
            };

            var addResult = Service.AddTeamUser(dto);

            Assert.IsTrue(addResult.IsSuccess);

            var tu = Service.GetTeamUser(dto.TeamUserId);

            Assert.IsNotNull(tu);
            Assert.AreEqual(dto.TeamUserId, tu.TeamUserId);
            Assert.AreEqual(teamDto.TeamId, tu.TeamId);
            Assert.AreEqual(userDto.UserId, tu.UserId);

            dto.UserId = user2Dto.UserId;
            var updateResult = Service.UpdateTeamUser(dto);

            Assert.IsTrue(updateResult.IsSuccess);

            tu = Service.GetTeamUser(dto.TeamUserId);
            Assert.IsNotNull(tu);
            Assert.AreEqual(user2Dto.UserId, tu.UserId);

            var deleteResult = Service.DeleteTeamUser(tu.TeamUserId);

            Assert.IsTrue(deleteResult.IsSuccess);

            DeleteSeededTeam(teamDto.TeamId);
            DeleteSeededUser(userDto.UserId);
            DeleteSeededUser(user2Dto.UserId);
        }
        public async Task <IActionResult> RemoveUserFromTeam([FromBody] TeamUserDto teamUserDto)
        {
            if (teamUserDto.TeamName.IsNullOrEmpty())
            {
                return(BadRequest($"Team name can not be null or empty."));
            }
            if (teamUserDto.UserName.IsNullOrEmpty())
            {
                return(BadRequest($"User name can not be null or empty."));
            }
            var stringContent = new StringContent(JsonConvert.SerializeObject(teamUserDto), Encoding.UTF8, "application/json");
            var response      = await _client.PutAsync(Resources.AdminTeamsApi + "/remove/user", stringContent);

            var resultMessage = await response.Content.ReadAsStringAsync();

            if (response.StatusCode != HttpStatusCode.OK)
            {
                return(BadRequest(resultMessage));
            }
            return(Ok(resultMessage));
        }