Example #1
0
        public async Task <ActionResult <DynamicContentListEntrySearchResult> > DynamicContentItemsEntriesSearch([FromBody] coreModel.DynamicContentItemSearchCriteria criteria)
        {
            var result = AbstractTypeFactory <DynamicContentListEntrySearchResult> .TryCreateInstance();

            var foldersSearchResult = await _folderSearchService.SearchFoldersAsync(new coreModel.DynamicContentFolderSearchCriteria {
                FolderId = criteria.FolderId, Keyword = criteria.Keyword, Take = criteria.Take, Skip = criteria.Skip, Sort = criteria.Sort
            });

            var folderSkip = Math.Min(foldersSearchResult.TotalCount, criteria.Skip);
            var folderTake = Math.Min(criteria.Take, Math.Max(0, foldersSearchResult.TotalCount - criteria.Skip));

            result.TotalCount += foldersSearchResult.TotalCount;
            result.Results.AddRange(foldersSearchResult.Results.Skip(folderSkip).Take(folderTake));

            criteria.Skip -= folderSkip;
            criteria.Take -= folderTake;

            var itemsSearchResult = await _contentItemsSearchService.SearchContentItemsAsync(criteria);

            result.TotalCount += itemsSearchResult.TotalCount;
            result.Results.AddRange(itemsSearchResult.Results);

            return(Ok(result));
        }
Example #2
0
        public async Task <ActionResult <DynamicContentItemSearchResult> > DynamicContentItemsSearch([FromBody] coreModel.DynamicContentItemSearchCriteria criteria)
        {
            var itemsSearchResult = await _contentItemsSearchService.SearchContentItemsAsync(criteria);

            return(Ok(itemsSearchResult));
        }
        public async Task <ActionResult <GenericSearchResult <coreModel.DynamicContentListEntry> > > DynamicContentItemsEntriesSearch([FromBody] coreModel.DynamicContentItemSearchCriteria criteria)
        {
            var retVal = new GenericSearchResult <coreModel.DynamicContentListEntry>
            {
                Results = new List <coreModel.DynamicContentListEntry>()
            };

            var foldersSearchResult = await _dynamicConentSearchService.SearchFoldersAsync(new coreModel.DynamicContentFolderSearchCriteria {
                FolderId = criteria.FolderId, Keyword = criteria.Keyword, Take = criteria.Take, Skip = criteria.Skip, Sort = criteria.Sort
            });

            var folderSkip = Math.Min(foldersSearchResult.TotalCount, criteria.Skip);
            var folderTake = Math.Min(criteria.Take, Math.Max(0, foldersSearchResult.TotalCount - criteria.Skip));

            retVal.TotalCount += foldersSearchResult.TotalCount;
            retVal.Results.AddRange(foldersSearchResult.Results.Skip(folderSkip).Take(folderTake));

            criteria.Skip = criteria.Skip - folderSkip;
            criteria.Take = criteria.Take - folderTake;

            var itemsSearchResult = await _dynamicConentSearchService.SearchContentItemsAsync(criteria);

            retVal.TotalCount += itemsSearchResult.TotalCount;
            retVal.Results.AddRange(itemsSearchResult.Results);

            return(Ok(retVal));
        }