Example #1
0
        public async Task <IActionResult> GetRoles(RoleResourceParameters parameters)
        {
            var result = new Result();

            try
            {
                var roleQry = _roleManager.Roles.Where(x => x.IsActive && !x.IsDeleted);
                if (!User.IsInRole(supAdminRole))
                {
                    roleQry = roleQry.Where(u => u.SharedKey == _key);
                }

                var queryResult = _mapper.Map <IEnumerable <RoleListModel> >(roleQry).AsQueryable();
                // __::todo- apply filter, sort & serach query
                var data = queryResult.GetPaged(parameters.PageNo, parameters.PageSize);

                //var ownerRole = _roleManager.Roles.FirstOrDefault(x => x.SharedKey == user.SharedKey+"_opac" && x.IsActive && !x.IsDeleted);

                result.Success = true;
                result.Data    = data;

                return(Ok(result));
            }
            catch (Exception ex)
            {
                result.AddError(ex.Message);
            }

            return(BadRequest(result));
        }
Example #2
0
        public List <ApplicationRole> GetRolesUnpaged(RoleResourceParameters roleResourceParameters)
        {
            var appRoles = _roleManager.Roles.AsQueryable();

            if (!string.IsNullOrEmpty(roleResourceParameters.SearchQuery))
            {
                // trim & ignore casing
                var searchQueryForWhereClause = roleResourceParameters.SearchQuery.Trim().ToLowerInvariant();

                appRoles = appRoles
                           .Where(r => r.Name.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                  r.NormalizedName.ToLowerInvariant().Contains(searchQueryForWhereClause));
            }

            return(appRoles.ToList());
        }
Example #3
0
        public PagedList <ApplicationRole> GetRolesPaged(RoleResourceParameters roleResourceParameters)
        {
            var appRoles = _roleManager.Roles.AsQueryable();

            var collectionBeforePaging = appRoles.OrderBy($"{roleResourceParameters.OrderBy}").AsQueryable();

            if (!string.IsNullOrEmpty(roleResourceParameters.SearchQuery))
            {
                // trim & ignore casing
                var searchQueryForWhereClause = roleResourceParameters.SearchQuery.Trim().ToLowerInvariant();

                collectionBeforePaging = collectionBeforePaging
                                         .Where(r => r.Name.ToLowerInvariant().Contains(searchQueryForWhereClause) ||
                                                r.NormalizedName.ToLowerInvariant().Contains(searchQueryForWhereClause));
            }

            return(PagedList <ApplicationRole> .Create(collectionBeforePaging, roleResourceParameters.PageNumber, roleResourceParameters.PageSize));
        }
Example #4
0
        public IActionResult GetRolesUnpaged(RoleResourceParameters roleResourceParameters)
        {
            var i = User;

            if (!_propertyMappingService.ValidMappingExistsFor <ApplicationRoleDTO, ApplicationRole>(roleResourceParameters.Fields))
            {
                return(BadRequest());
            }

            if (!_propertyMappingService.ValidMappingExistsFor <ApplicationRoleDTO, ApplicationRole>(roleResourceParameters.OrderBy))
            {
                return(BadRequest());
            }

            var rolesFromRepo = _roleRepository.GetRolesUnpaged(roleResourceParameters);

            var roles       = Mapper.Map <IEnumerable <ApplicationRoleDTO> >(rolesFromRepo);
            var shapedRoles = roles.ShapeData(roleResourceParameters.Fields);

            return(Ok(shapedRoles));
        }
Example #5
0
        private string CreateRolesResourceUri(RoleResourceParameters roleResourceParameters,
                                              ResourceUriType type)
        {
            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(_urlHelper.Link("GetRoles",
                                       new
                {
                    fields = roleResourceParameters.Fields,
                    orderBy = roleResourceParameters.OrderBy,
                    searchQuery = roleResourceParameters.SearchQuery,
                    pageNumber = roleResourceParameters.PageNumber - 1,
                    pageSize = roleResourceParameters.PageSize
                }));

            case ResourceUriType.NextPage:
                return(_urlHelper.Link("GetRoles",
                                       new
                {
                    fields = roleResourceParameters.Fields,
                    orderBy = roleResourceParameters.OrderBy,
                    searchQuery = roleResourceParameters.SearchQuery,
                    pageNumber = roleResourceParameters.PageNumber + 1,
                    pageSize = roleResourceParameters.PageSize
                }));

            case ResourceUriType.Current:
            default:
                return(_urlHelper.Link("GetRoles",
                                       new
                {
                    fields = roleResourceParameters.Fields,
                    orderBy = roleResourceParameters.OrderBy,
                    searchQuery = roleResourceParameters.SearchQuery,
                    pageNumber = roleResourceParameters.PageNumber,
                    pageSize = roleResourceParameters.PageSize
                }));
            }
        }
Example #6
0
        public IActionResult GetRolesPaged(RoleResourceParameters roleResourceParameters)
        {
            if (!_propertyMappingService.ValidMappingExistsFor <ApplicationRoleDTO, ApplicationRole>(roleResourceParameters.Fields))
            {
                return(BadRequest());
            }

            if (!_propertyMappingService.ValidMappingExistsFor <ApplicationRoleDTO, ApplicationRole>(roleResourceParameters.OrderBy))
            {
                return(BadRequest());
            }

            var rolesFromRepo = _roleRepository.GetRolesPaged(roleResourceParameters);

            var roles = Mapper.Map <IEnumerable <ApplicationRoleDTO> >(rolesFromRepo);

            var previousPageLink = rolesFromRepo.HasPrevious ?
                                   CreateRolesResourceUri(roleResourceParameters, ResourceUriType.PreviousPage) : null;
            var nextPageLink = rolesFromRepo.HasNext ?
                               CreateRolesResourceUri(roleResourceParameters, ResourceUriType.NextPage) : null;

            var paginationMetadata = new
            {
                previousPageLink = previousPageLink,
                nextPageLink     = nextPageLink,
                totalCount       = rolesFromRepo.TotalCount,
                pageSize         = rolesFromRepo.PageSize,
                currentPage      = rolesFromRepo.CurrentPage,
                totalPages       = rolesFromRepo.TotalPages
            };

            Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(paginationMetadata));

            var shapedRoles = roles.ShapeData(roleResourceParameters.Fields);

            return(Ok(shapedRoles));
        }