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())); }
public async Task <IResult> SaveUserAssigned([FromForm] AssignUserOnRoleParameters parameters) { var repositoryResult = await _userServices.SaveUserAssigned(parameters); var result = ResponseHandler.GetResult(repositoryResult); return(result); }