public async Task <IActionResult> Index(AuthorizationPolicyFilterModel filter) { var filterRequest = new AuthorizationPolicyFilter { Page = filter.Page, PageSize = _pagerOptions.PageSize, Keyword = filter.Search }; var policiesPageList = _authorizationPolicyService.Get(filterRequest); var policyModels = policiesPageList.Collections.Select(x => new AuthorizationPolicyModel { CreatedById = x.CreatedById, CreatedDate = x.CreatedDate, CreatedByName = x.CreatedByName, UpdatedById = x.UpdatedById, UpdatedDate = x.CreatedDate, UpdatedByName = x.CreatedByName, Description = x.Description, Id = x.Id, Name = x.Name }).ToList(); var canViewUserAuthorizationPolicy = await _userManager.HasPolicyAsync(User, AuthorizePolicyConst.CanReadUserAuthorizationPolicy); var canViewRoleAuthorizationPolicy = await _userManager.HasPolicyAsync(User, AuthorizePolicyConst.CanReadRoleAuthorizationPolicy); policyModels.ForEach(x => { x.CanViewRoleAuthorizationPolicy = canViewRoleAuthorizationPolicy; x.CanViewUserAuthorizationPolicy = canViewUserAuthorizationPolicy; }); var policiesPage = new PageListModel <AuthorizationPolicyModel>(policyModels) { Filter = filter, TotalPage = policiesPageList.TotalPage, TotalResult = policiesPageList.TotalResult }; if (_httpHelper.IsAjaxRequest(Request)) { return(PartialView("_AuthorizationPolicyTable", policiesPage)); } return(View(policiesPage)); }
public BasePageList <AuthorizationPolicyResult> Get(AuthorizationPolicyFilter filter) { var search = filter.Keyword != null?filter.Keyword.ToLower() : ""; var query = (from policy in _authorizationPolicyRepository.Table join createdBy in _userRepository.Table on policy.CreatedById equals createdBy.Id join updatedBy in _userRepository.Table on policy.UpdatedById equals updatedBy.Id where string.IsNullOrEmpty(search) || policy.Name.ToLower().Contains(search) || (policy.Description != null && policy.Description.ToLower().Contains(search)) select new AuthorizationPolicyResult() { CreatedById = policy.CreatedById, CreatedByName = createdBy.Lastname + " " + createdBy.Firstname, CreatedDate = policy.CreatedDate, UpdatedById = policy.UpdatedById, UpdatedByName = updatedBy.Lastname + " " + updatedBy.Firstname, UpdatedDate = policy.UpdatedDate, Description = policy.Description, Id = policy.Id, Name = policy.Name }); var filteredNumber = query.Select(x => x.Id).Count(); var authorizationPolicies = query.Skip(filter.PageSize * (filter.Page - 1)) .Take(filter.PageSize) .ToList(); var result = new BasePageList <AuthorizationPolicyResult>(authorizationPolicies) { TotalResult = filteredNumber, TotalPage = (int)Math.Ceiling((double)filteredNumber / filter.PageSize) }; return(result); }
public BasePageList <AuthorizationPolicyResult> Get(AuthorizationPolicyFilter filter) { return(_authorizationPolicyRepository.Get(filter)); }