public async Task <List <AccountRole> > GetRoleMembers(Guid roleId)
        {
            ///TODO: Add Caching.
            var users = await AccountRoleRepository.GetByRoleIDAsync(roleId);

            return(users.ToList());
        }
        public AccountService(IOptions <JwtSettings> _jwtSettingsAccesser, ILoginInfo loginInfo, LoginLogService loginLogService, LoginLogRepository loginLogRepository, AccountRepository accountRepository, AccountRoleRepository accountRoleRepository, IMapper mapper)
        {
            _jwtSettings = _jwtSettingsAccesser.Value;

            _loginLogService       = loginLogService;
            _loginLogRepository    = loginLogRepository;
            _accountRepository     = accountRepository;
            _accountRoleRepository = accountRoleRepository;
            _loginInfo             = loginInfo;
            _mapper = mapper;
        }
        public async Task <List <RoleDefinition> > GetUserRoles(Guid userId)
        {
            var userRoles = await AccountRoleRepository.GetByAccountIdAsync(userId);

            var taskList = new List <Task <RoleDefinition> >();

            userRoles.ToList().ForEach(x => { taskList.Add(GetRoleDefinition(x.RoleID)); });

            var rolesForUser = await Task.WhenAll(taskList);

            return(rolesForUser.ToList());
        }
        public async Task <AccountRole> GrantUserRole(Guid userid, Guid roleid)
        {
            var userRole = await AccountRoleRepository.GetUserRoleAsync(userid, roleid);

            if (userRole != null)
            {
                return(userRole);
            }
            userRole = new AccountRole
            {
                AccountID    = userid,
                RoleID       = roleid,
                CreatedBy    = "chef",
                ModifiedBy   = "chef",
                ModifiedDate = DateTime.UtcNow,
                CreatedDate  = DateTime.UtcNow
            };

            return(await AccountRoleRepository.CreateAsync(userRole));
        }
 public async Task RevokeRoleFromUser(Guid userid, Guid roleid)
 {
     await AccountRoleRepository.DeleteAsync(new AccountRole { AccountID = userid, RoleID = roleid });
 }