Beispiel #1
0
        public DTO.SearchResult Search(bool isRKAdmin, Guid clientId, Guid?roleCode = null, Guid?applicationCode = null, Guid?resourceCode = null, string resourceName = null, int?skip = null, int?take = null)
        {
            DTO.SearchFilterPermission searchFilter = new DTO.SearchFilterPermission();

            searchFilter.ResourceName = resourceName;

            if (roleCode.HasValue)
            {
                searchFilter.RoleCode = roleCode;
            }

            if (resourceCode.HasValue)
            {
                searchFilter.ResourceCode = resourceCode;
            }

            if (skip.HasValue)
            {
                searchFilter.Skip = skip;
            }

            if (take.HasValue)
            {
                searchFilter.Take = take;
            }

            if (isRKAdmin)
            {
                searchFilter.ApplicationCode = applicationCode;
            }
            else
            {
                var appStore = appStoreRepository.GetByClientId(clientId);

                if (appStore != null)
                {
                    searchFilter.ApplicationCode = appStore.Application.Code;
                }
                else
                {
                    throw new ArgumentException("Aplicação inválida");
                }
            }

            var result = repository.Search(searchFilter);

            var permisions = result.Results.Select(p => new DTO.Permission(p));

            return(new DTO.SearchResult(permisions).SetResult <Permission>(result));
        }
Beispiel #2
0
        public VO.SearchResult <Permission> Search(DTO.SearchFilterPermission searchFilter)
        {
            IQueryable <Permission> result = Collection.
                                             Include(x => x.Role).
                                             Include(p => p.Resource.Application).
                                             Include(x => x.Resource).
                                             AsQueryable();

            if (!searchFilter.ResourceName.IsNullOrWhiteSpace())
            {
                result = result.Where(p => p.Resource.Name.ToLower().Contains(searchFilter.ResourceName.ToLower()));
            }

            if (!searchFilter.ResourceCode.IsNull() && !searchFilter.ResourceCode.IsEmpty())
            {
                result = result.Where(p => p.ResourceCode == searchFilter.ResourceCode);
            }

            if (!searchFilter.RoleCode.IsNull() && !searchFilter.RoleCode.IsEmpty())
            {
                result = result.Where(p => p.RoleCode == searchFilter.RoleCode);
            }

            if (!searchFilter.ApplicationCode.IsNull() && !searchFilter.ApplicationCode.IsEmpty())
            {
                result = result.Where(p => p.Resource.ApplicationCode == searchFilter.ApplicationCode);
            }

            result = result.OrderBy(p => p.SaveDate);

            var count = result.Count();

            result = result.Skip((searchFilter.Skip.Value) * searchFilter.Take.Value);

            result = result.Take(searchFilter.Take.Value);

            return(new VO.SearchResult <Permission>(result.ToList(), searchFilter, count));
        }