Beispiel #1
0
        public async Task <List <SearchResultDto> > Get(SearchResourceParameter resourceParameter)
        {
            if (resourceParameter.Option == SearchOption.Dapper)//default
            {
                return(await _searchRepository.GetSearchResultUsingDapper(resourceParameter.Name, resourceParameter.Group,
                                                                          resourceParameter.PageNumber, resourceParameter.PageSize, resourceParameter.SortColumn, resourceParameter.SortOrderOption));
            }
            else
            {
                //2 calls to the database makes this inefficient
                var result = await _searchRepository.GetSearchResultUsingEFCore(resourceParameter.Name, resourceParameter.Group,
                                                                                resourceParameter.PageNumber, resourceParameter.PageSize, resourceParameter.SortColumn, resourceParameter.SortOrderOption);

                var count = _searchRepository.Count(resourceParameter.Name, resourceParameter.Group);

                result.ForEach(r => r.TotalRows = count);
                return(result);
            }
        }