Example #1
0
        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")));
            }
        }
Example #2
0
        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());
            }
        }
Example #3
0
        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")));
            }
        }
Example #4
0
        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(),
                }));
            }
        }
Example #5
0
        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());
            }
        }