public IActionResult RemoveUserFromTeam([FromBody] AddUserToTeamDto removeUser) { var user = _unitOfWork.User.GetById(removeUser.UserId); var members = _unitOfWork.User.GetByTeamId(removeUser.TeamId); var team = _unitOfWork.Team.GetById(removeUser.TeamId); if (user.TeamId == null) { return(BadRequest(new TransActionResponse("The user in not in a team"))); } if (members.Count() == 1) { return(StatusCode(400, new TransActionResponse("User can not leave the team"))); } string userGuid = UserHelper.GetUserGuid(_httpContextAccessor); var getCurrentUser = _unitOfWork.User.GetByGuid(userGuid); var getTeam = _unitOfWork.Team.GetById(removeUser.TeamId); if (getCurrentUser.Role.Name.ToLower() == "admin" || getCurrentUser.UserId == getTeam.UserId || getCurrentUser.UserId == removeUser.UserId) { if (team.UserId == removeUser.UserId) { Random rand = new Random(); int toSkip = rand.Next(0, members.Count() - 1); var randomMember = members.Skip(toSkip).Where(x => x.UserId != removeUser.UserId).Take(1).First(); team.UserId = randomMember.UserId; } user.TeamId = null; _unitOfWork.User.Update(user); if (!_unitOfWork.Save()) { return(StatusCode(500, new TransActionResponse("A problem happened while handling your request."))); } return(GetTeamById(removeUser.TeamId)); } else { return(StatusCode(401, new TransActionResponse("Unauthorized Access"))); } }
public IActionResult AddUserToTeam([FromBody] AddUserToTeamDto addUserToTeam) { var getUser = _unitOfWork.User.GetById(addUserToTeam.UserId); if (getUser.TeamId != null) { return(BadRequest()); } //var users = _transActionRepo.GetUsers(); //var numMembers = users.Where(y => y.TeamId == getUser.TeamId).Count(); //if(numMembers > 5) //{ // return BadRequest(); //} //have to update the teamId and then find and update the member request and set then false on active string userGuid = UserHelper.GetUserGuid(_httpContextAccessor); var getCurrentUser = _transActionRepo.GetUsers().FirstOrDefault(c => c.Guid == userGuid); var getTeam = _transActionRepo.GetTeam(addUserToTeam.TeamId); if (getCurrentUser.Role.Name.ToLower() == "admin" || getCurrentUser.UserId == getTeam.UserId) { getUser.TeamId = addUserToTeam.TeamId; getUser.IsFreeAgent = false; var requests = _transActionRepo.GetRequests(); requests = requests.Where(x => x.UserId == addUserToTeam.UserId && x.IsActive == true); foreach (var request in requests) { request.IsActive = false; } if (!_transActionRepo.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } return(GetTeamById(addUserToTeam.TeamId)); } else { return(BadRequest()); } }
public IActionResult AddUserToTeam([FromBody] AddUserToTeamDto addUserToTeam, int page = 1, int pageSize = 25) { var getUser = _unitOfWork.User.GetById(addUserToTeam.UserId); if (getUser.TeamId != null) { return(BadRequest(new TransActionResponse("The user is already in a team"))); } var numMembers = _unitOfWork.User.GetByTeamId(addUserToTeam.TeamId).Count(); if (numMembers >= 5) { return(BadRequest(new TransActionResponse("The team is full"))); } string userGuid = UserHelper.GetUserGuid(_httpContextAccessor); var getCurrentUser = _unitOfWork.User.GetByGuid(userGuid); var getTeam = _unitOfWork.Team.GetById(addUserToTeam.TeamId); if (getCurrentUser.Role.Name.ToLower() == "admin" || getCurrentUser.UserId == getTeam.UserId) { getUser.TeamId = addUserToTeam.TeamId; getUser.IsFreeAgent = false; var requests = _unitOfWork.Request.GetAllReq(page, pageSize); requests = requests.Where(x => x.UserId == addUserToTeam.UserId && x.IsActive == true); foreach (var request in requests) { request.IsActive = false; } _unitOfWork.User.Update(getUser); if (!_unitOfWork.Save()) { return(StatusCode(500, new TransActionResponse("A problem happened while handling your request."))); } return(GetTeamById(addUserToTeam.TeamId)); } else { return(StatusCode(401, new TransActionResponse("Unauthorized Access"))); } }
public IActionResult AddTSRToTeam([FromBody] AddUserToTeamDto addUserToTeamDto) { var userID = User.FindFirst(ClaimTypes.NameIdentifier).Value; try { bool res = _teamRepository.AddTSRToTeam(addUserToTeamDto.ID, addUserToTeamDto.TSRS_ID, userID); if (res) { return(StatusCode(200, new { code = 200, message = "Ok", data = new { tsrIdAdded = addUserToTeamDto.TSRS_ID, } })); } else { return(StatusCode(400, new { code = 400, message = "Fail", })); } } catch (Exception e) { return(StatusCode(400, new { code = 400, message = e.ToString(), })); } }
public IActionResult RemoveUserFromTeam([FromBody] AddUserToTeamDto removeUser) { var user = _unitOfWork.User.GetById(removeUser.UserId); var users = _transActionRepo.GetUsers(); var members = users.Where(x => x.TeamId == removeUser.TeamId); var team = _transActionRepo.GetTeam(removeUser.TeamId); if (user.TeamId == null) { return(BadRequest()); } if (members.Count() == 1) { return(BadRequest(400)); } string userGuid = UserHelper.GetUserGuid(_httpContextAccessor); var getCurrentUser = _transActionRepo.GetUsers().FirstOrDefault(c => c.Guid == userGuid); var getTeam = _transActionRepo.GetTeam(removeUser.TeamId); if (getCurrentUser.Role.Name.ToLower() == "admin" || getCurrentUser.UserId == getTeam.UserId) { if (team.UserId == removeUser.UserId) { Random rand = new Random(); int toSkip = rand.Next(0, members.Count() - 1); var randomMember = members.Skip(toSkip).Where(x => x.UserId != removeUser.UserId).Take(1).First(); team.UserId = randomMember.UserId; } user.TeamId = null; //var roleId = _transActionRepo.GetRoles().Where(x => x.Name.ToLower() == "team_lead").Select(x => x.RoleId).FirstOrDefault(); //if (user.RoleId == roleId) //{ // team.UserId = randomMember.UserId; // randomMember.RoleId = roleId; // user.TeamId = null; // roleId = _transActionRepo.GetRoles().Where(x => x.Name.ToLower() == "user").Select(x => x.RoleId).FirstOrDefault(); // user.RoleId = roleId; //} //roleId = _transActionRepo.GetRoles().Where(x => x.Name.ToLower() == "user").Select(x => x.RoleId).FirstOrDefault(); //if(user.RoleId == roleId) //{ // user.TeamId = null; // user.RoleId = roleId; //} //roleId = _transActionRepo.GetRoles().Where(x => x.Name.ToLower() == "admin").Select(x => x.RoleId).FirstOrDefault(); //if(user.RoleId == roleId) //{ // if(team.UserId == removeUser.UserId) // { // roleId = _transActionRepo.GetRoles().Where(x => x.Name.ToLower() == "team_lead").Select(x => x.RoleId).FirstOrDefault(); // randomMember.RoleId = roleId; // team.UserId = randomMember.UserId; // } // user.TeamId = null; //} if (!_transActionRepo.Save()) { return(StatusCode(500, "A problem happened while handling your request.")); } return(GetTeamById(removeUser.TeamId)); } else { return(BadRequest()); } }