Exemple #1
0
        public async Task <IResponseResult> SaveUserAssigned(AssignUserOnRoleParameters parameters)
        {
            var role = await _roleUnitOfWork.Repository.FirstOrDefaultAsync(q => q.Id == parameters.RoleId, include : source => source.Include(a => a.AspNetUsersRoles), disableTracking : false);

            if (parameters.AssignedUser != null)
            {
                foreach (var user in parameters.AssignedUser)
                {
                    var isExist = role.AspNetUsersRoles.Any(q => q.UserId == user);
                    if (!isExist)
                    {
                        var userRole = new AspNetUsersRoles()
                        {
                            Id = Guid.NewGuid().ToString(), UserId = user, RoleId = parameters.RoleId
                        };
                        role.AspNetUsersRoles.Add(userRole);
                    }
                }
            }
            if (role.AspNetUsersRoles.Any())
            {
                await _roleUnitOfWork.SaveChanges();
            }

            var userRemove = parameters.AssignedUser is null ? role.AspNetUsersRoles : role.AspNetUsersRoles.Where(q => !parameters.AssignedUser.Contains(q.UserId));

            if (userRemove.Any())
            {
                _userRolesUnitOfWork.Repository.RemoveRange(userRemove);
                await _userRolesUnitOfWork.SaveChanges();
            }

            return(ResponseResult.GetRepositoryActionResult(true, status: HttpStatusCode.Created, message: HttpStatusCode.Created.ToString()));
        }
Exemple #2
0
        public async Task <IResult> SaveUserAssigned([FromForm] AssignUserOnRoleParameters parameters)
        {
            var repositoryResult = await _userServices.SaveUserAssigned(parameters);

            var result = ResponseHandler.GetResult(repositoryResult);

            return(result);
        }