public IActionResult Index(UserAuthorizationPolicyFilterModel filter)
        {
            var filterRequest = new UserAuthorizationPolicyFilter
            {
                Page     = filter.Page,
                PageSize = _pagerOptions.PageSize,
                Keyword  = filter.Search
            };
            var authorizationPolicy = _userAuthorizationPolicyService.GetAuthoricationPolicyUsers(filter.Id, filterRequest);

            var users = authorizationPolicy.Collections.Select(x => new UserModel
            {
                DisplayName = x.DisplayName,
                Firstname   = x.Firstname,
                Lastname    = x.Lastname,
                Id          = x.Id
            });
            var authorizationUsersPage = new AuthorizationPolicyUsersModel(users)
            {
                Description = authorizationPolicy.Description,
                Id          = authorizationPolicy.Id,
                Name        = authorizationPolicy.Name,
                TotalPage   = authorizationPolicy.TotalPage,
                TotalResult = authorizationPolicy.TotalResult,
                Filter      = filter
            };

            if (_httpHelper.IsAjaxRequest(Request))
            {
                return(PartialView("_UserAuthorizationPolicyTable", authorizationUsersPage));
            }

            return(View(authorizationUsersPage));
        }
        public AuthorizationPolicyUsersPageList GetAuthoricationPolicyUsers(long id, UserAuthorizationPolicyFilter filter)
        {
            var search = filter.Keyword != null?filter.Keyword.ToLower() : "";

            var query = from userAuthorization in _userAuthorizationPolicyRepository.Get(x => x.AuthorizationPolicyId == id)
                        join user in _userRepository.Table
                        on userAuthorization.UserId equals user.Id
                        where string.IsNullOrEmpty(search) ||
                        user.Lastname.ToLower().Contains(search) ||
                        user.Firstname.ToLower().Contains(search) ||
                        (user.Lastname + " " + user.Firstname).ToLower().Contains(search)
                        select new UserResult()
            {
                DisplayName = user.DisplayName,
                Firstname   = user.Firstname,
                Lastname    = user.Lastname,
                Id          = user.Id
            };

            var filteredNumber = query.Select(x => x.Id).Count();
            var roles          = query.Skip(filter.PageSize * (filter.Page - 1))
                                 .Take(filter.PageSize).ToList();

            var authorizationPolicy = _authorizationPolicyRepository.Get(x => x.Id == id)
                                      .Select(x => new AuthorizationPolicyUsersPageList
            {
                Id          = x.Id,
                Name        = x.Name,
                Description = x.Description
            })
                                      .FirstOrDefault();

            authorizationPolicy.Collections = roles;
            authorizationPolicy.TotalResult = filteredNumber;
            authorizationPolicy.TotalPage   = (int)Math.Ceiling((double)filteredNumber / filter.PageSize);

            return(authorizationPolicy);
        }
 public AuthorizationPolicyUsersPageList GetAuthoricationPolicyUsers(long id, UserAuthorizationPolicyFilter filter)
 {
     return(_userAuthorizationPolicyRepository.GetAuthoricationPolicyUsers(id, filter));
 }