public UserRole AssignRole(User user, Role role) { if (user == null) { throw new ArgumentNullException("user"); } if (role == null) { throw new ArgumentNullException("role"); } var userRole = _userRoleRepository.FirstOrDefault(ur => ur.UserId == user.Id); if (userRole == null) { userRole = UserRole.CreateUserRole(user, role); _userRoleRepository.Insert(userRole); } else { userRole.RoleId = role.Id; _userRoleRepository.Update(userRole); } return(userRole); }
// 将指定的用户赋予特定的角色。 public UserRole AssignRole(User user, Role role) { if (user == null) { throw new ArgumentNullException("user"); } if (role == null) { throw new ArgumentNullException("role"); } var userRole = _userRoleRepository.GetBySpecification(Specification <UserRole> .Eval(ur => ur.UserId == user.Id)); if (userRole == null) { userRole = UserRole.CreateUserRole(user, role); _userRoleRepository.Add(userRole); } else { userRole.RoleId = role.Id; _userRoleRepository.Update(userRole); } _repositoryContext.Commit(); return(userRole); }
public async Task SetUserRole(Guid id, List <Guid> roleIds) { roleIds.ForEach(async roleId => { await _context.Set <UserRole>().AddAsync(UserRole.CreateUserRole(id, roleId)); }); await _context.SaveChangesAsync(true, CancellationToken.None); }
public static ErrorCode SetUserRole(RoleType rolecode, Guid userID, DateTime until) { List <UserRole> thatRoleofUser = (from r in db.UserRole where r.AccountAccount_ID == userID && r.Role_Code == (int)rolecode select r).ToList <UserRole>(); if (thatRoleofUser.Any()) { if (DateTime.Compare((until), DateTime.UtcNow) <= 0) { return(new ErrorCode(ErrorType.WrongInformationInField, "Datetime is in past")); } else { try { db.UserRole.DeleteObject(thatRoleofUser.First <UserRole>()); db.UserRole.AddObject(UserRole.CreateUserRole(Guid.NewGuid(), until, userID, (int)rolecode)); db.SaveChanges(); return(new ErrorCode(ErrorType.Ok, "Role has been given.")); } catch (Exception e) { return(new ErrorCode(ErrorType.DataBaseProblems, "Database problems: " + e.ToString())); } } } else { try { db.UserRole.AddObject(UserRole.CreateUserRole(Guid.NewGuid(), until, userID, (int)rolecode)); db.SaveChanges(); return(new ErrorCode(ErrorType.Ok, "Role has been given.")); } catch (Exception e) { return(new ErrorCode(ErrorType.DataBaseProblems, "Database problems: " + e.ToString())); } } }