Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        // 将指定的用户赋予特定的角色。
        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);
        }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
        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()));
                }
            }
        }