Example #1
0
        public async Task <UserWithRolesDto> EditUserRoles(UserEditRolesDto userEditRolesDto)
        {
            var userRolesFromRepo = await userDal.GetUserWithRoles(userEditRolesDto.UserId);

            var mappedUserRoles = mapper.Map <UserWithRolesDto>(userRolesFromRepo);
            var userFromRepo    = await userDal.Get(u => u.Id == userEditRolesDto.UserId);

            var selectedRoles = userEditRolesDto.RoleId;

            selectedRoles = selectedRoles ?? new int[] {};

            var addroles = new UserRole();

            foreach (var item in selectedRoles.Except(mappedUserRoles.UserRoles.Select(p => p.Id)))
            {
                addroles = await userRoleDal.Add(new UserRole { UserId = userFromRepo.Id, RoleId = item });
            }

            if (addroles == null)
            {
                throw new Exception("Can't added user roles.!!");
            }

            var  userroles   = mappedUserRoles.UserRoles.Select(p => p.Id);
            bool removeRoles = false;

            foreach (var item in userroles.Except(selectedRoles))
            {
                removeRoles = await userRoleDal.Delete(new UserRole { UserId = userFromRepo.Id, RoleId = item });
            }
            if (!removeRoles)
            {
                throw new Exception("Could not remove old user roles.!!");
            }

            return(mapper.Map <UserWithRolesDto>(await userDal.GetUserWithRoles(userFromRepo.Id)));
        }
Example #2
0
        public async Task <IActionResult> EditUserRoles([FromBody] UserEditRolesDto userEditRolesDto)
        {
            var editUserRoles = await userService.EditUserRoles(userEditRolesDto);

            return(Ok(editUserRoles));
        }