protected override PagedResult <IMedia> PerformSearch(QueryStructure query) { if (query.Lucene.IsNullOrWhiteSpace()) { throw new HttpResponseException(HttpStatusCode.NotFound); } var result = SearchProvider.Search( SearchProvider.CreateSearchCriteria().RawQuery(query.Lucene), query.PageSize); var paged = result.Skip(GetSkipSize(query.PageIndex, query.PageSize)).ToArray(); //TODO: We really need to make a model mapper from search result to IMedia, for now well just go lookup that content :( if (paged.Any()) { var foundContent = MediaService.GetByIds(paged.Select(x => x.Id)).WhereNotNull(); return(new PagedResult <IMedia>(result.TotalItemCount, query.PageIndex + 1, query.PageSize) { Items = foundContent }); } return(new PagedResult <IMedia>(result.TotalItemCount, query.PageIndex + 1, query.PageSize) { Items = Enumerable.Empty <IMedia>() }); }