Example #1
0
        public DTO.SearchResult Search(bool isRKAdmin, Guid clientId, string name = null, Guid?application_code = null, int?skip = null, int?take = null)
        {
            DTO.SearchFilterResource searchFilter = new DTO.SearchFilterResource();

            if (!name.IsNullOrWhiteSpace())
            {
                searchFilter.Name = name;
            }

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

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

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

            var result = repository.Search(searchFilter);

            var resources = result.Results.Select(r => new DTO.Resource(r, includeApp: true));

            return(new DTO.SearchResult(resources).SetResult <Resource>(result));
        }
Example #2
0
        public VO.SearchResult <Resource> Search(DTO.SearchFilterResource filter)
        {
            IQueryable <Resource> result = Collection.Include("Application").AsQueryable();

            if (!filter.Name.IsNullOrWhiteSpace())
            {
                result = result.Where(f => f.Name.ToLower().Contains(filter.Name.ToLower()));
            }

            if (!filter.ApplicationCode.IsNull() && !filter.ApplicationCode.IsEmpty())
            {
                result = result.Where(f => f.ApplicationCode == filter.ApplicationCode);
            }

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

            var count = result.Count();

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

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

            return(new VO.SearchResult <Resource>(result.ToList(), filter, count));
        }