Exemplo n.º 1
0
        public async Task <IActionResult> AddUserToPositionsAsync([FromBody] InUpdatePositionsDTO updatePositionsDTO)
        {
            var user = await _manager.UserRepository.GetAsync(updatePositionsDTO.UserId, true, false);

            var positions = await _manager.PositionRepository.GetAsync(updatePositionsDTO.PositionIds);

            if (user == null || positions.Count() == 0)
            {
                return(NotFound());
            }

            foreach (var pid in positions)
            {
                if (!user.Positions.Any(p => p.PositionId == pid))
                {
                    user.Positions.Add(pid, updatePositionsDTO.DateOfAssignment);
                }
                else
                {
                    user.Positions.Activate(pid, updatePositionsDTO.DateOfAssignment);
                }
            }

            _manager.UserRepository.Update(user);

            await _manager.SaveAsync();

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RemoveUserRemovePositionsAsync([FromBody] InUpdatePositionsDTO updatePositionsDTO)
        {
            var user = await _manager.UserRepository.GetAsync(updatePositionsDTO.UserId);

            var positionsIds = await _manager.PositionRepository.GetAsync(updatePositionsDTO.PositionIds);

            if (user == null || positionsIds.Count() == 0)
            {
                return(NotFound());
            }

            foreach (var positionId in positionsIds)
            {
                user.Positions.FirstOrDefault(p => p.PositionId == positionId)?.Remove();
            }

            await _manager.SaveAsync();

            return(Ok());
        }