Example #1
0
        public IEnumerable <Movie> GetMoviesByPopularity(SearchQuery query, SearchParameter parameter, out int totalResultCount)
        {
            var results = _siteSearchService.GetSearchResultsAs <Movie>(
                //Where Conditions
                w =>
            {
                w = w.Where(SearchHelper.GetPredicate <Movie>(parameter, _context));
                w = w.Where(m => m.ReleaseDate < DateTime.Now);
                if (!string.IsNullOrEmpty(query.Keyword))
                {
                    //w = w.Where(m => m.Crews)
                }
                return(w);
            }
                //Facet Set up
                , f => f
                //Sort order setup
                , s =>
            {
                s = s.OrderByDescending(m => m.Popularity)
                    .ThenByDescending(m => m.VoteAverage)
                    .ThenByDescending(m => m.ReleaseDate);
                return(s);
            },
                query
                );

            totalResultCount = results.TotalSearchResults;
            IEnumerable <Movie> movies = results.Hits.Select(h => _context.GetItem <Movie>(h.Document.Id));

            return(movies);
        }
Example #2
0
        private void ResetFieldValue <T>() where T : class, IPageBase, ISearchableContent
        {
            SearchResults <T> results = _siteSearchService.GetSearchResultsAs <T>(w => w, f => f, s => s);

            foreach (SearchHit <T> hit in results.Hits)
            {
                Item m = _sitecoreContext.GetItem <Item>(hit.Document.Id);
                if (m == null)
                {
                    Log.Warn(string.Format("Could not find item with id {0}", hit.Document.Id), results);
                    continue;
                }
                ImageField imf = m.Fields[IHasImageConstants.ImageFieldId];
                if (imf.MediaItem != null)
                {
                    continue;
                }
                m.Editing.BeginEdit();
                try
                {
                    imf.InnerField.Reset();
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("Error occured while processing item with id {0}", hit.Document.Id), ex,
                              results);
                    m.Editing.CancelEdit();
                }
                finally
                {
                    m.Editing.EndEdit();
                }
            }
        }