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); }
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); }
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); }
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)); }