Example #1
0
        public IEnumerable <IPublishedContent> SearchByQuery()
        {
            var searchInstance = ExamineManager.Instance;
            var searcher       = searchInstance.SearchProviderCollection["ExternalSearcher"];

            var queryString  = Umbraco.GetQueryString("q", string.Empty);
            var SearchFields = new string[] { "searchWords", "nodeName", "heading", "lead", "teaserHeading", "teaserDescription", " __Raw_layout" };
            var result       = new List <IPublishedContent>();

            if (string.IsNullOrEmpty(queryString))
            {
                return(result.AsEnumerable());
            }

            var criteria = searcher.CreateSearchCriteria();
            var query    = criteria
                           .Field("__IndexType", "content")
                           .Not().Field("umbracoNaviHide", "1")
                           .Not().Field("template", "0")
                           .And().GroupedOr(SearchFields, queryString)
                           .Compile();

            result.AddRange(Umbraco.TypedSearch(query));

            return(result.AsEnumerable());
        }
Example #2
0
        public ActionResult GetPage(MediaListViewModel model)
        {
            ModelState.Clear();

            var result          = Enumerable.Empty <IPublishedContent>();
            var pageQueryString = Umbraco.GetQueryString("p", string.Empty);

            result = model.RenderMethod != RenderListMethod.Default ?
                     GetSearchTypeMethod(model.RenderMethod.ToString(), this, new object[] { model }) :
                     model.MediaList;

            model.MediaList = result;

            //If items per page isn't initiated, render the full result
            if (model.ItemsPerPage == 0)
            {
                model.ItemsPerPage = model.MediaList.Count();
            }

            model.Page       = model.Page <= 0 ? 1 : model.Page + 1;
            model.TotalPages = Math.Ceiling((decimal)result.Count() / model.ItemsPerPage);

            if (!string.IsNullOrEmpty(pageQueryString) && model.InitialLoad)
            {
                model.MediaList = model.MediaList.Take(model.ItemsPerPage * int.Parse(pageQueryString));
            }
            else
            {
                model.MediaList = model.MediaList.Skip(model.Skips).Take(model.ItemsPerPage);
            }

            if (model.MediaList != null && model.MediaList.Any())
            {
                return(PartialView($"Components/_{model.RenderPartialView}", model));
            }

            return(PartialView("_EmptySearchResult", model));
        }
Example #3
0
        public IEnumerable <IPublishedContent> SearchVideoBySelectedTag()
        {
            var tags           = new List <string>();
            var travelTag      = Umbraco.GetQueryString("t", string.Empty);
            var destinationTag = Umbraco.GetQueryString("d", string.Empty);

            if (!string.IsNullOrEmpty(travelTag))
            {
                tags.Add(travelTag);
            }

            if (!string.IsNullOrEmpty(destinationTag))
            {
                tags.Add(destinationTag);
            }

            var searchInstance = ExamineManager.Instance;
            var searcher       = searchInstance.SearchProviderCollection["ExternalSearcher"];

            if (tags == null && !tags.Any())
            {
                return(Enumerable.Empty <IPublishedContent>());
            }

            var criteria = searcher.CreateSearchCriteria();
            var query    = criteria
                           .Field("__IndexType", "content")
                           .Not().Field("umbracoNaviHide", "1")
                           .Not().Field(" __NodeTypeAlias", "defaultTag")
                           .And().Field("__NodeTypeAlias", "videoPage")
                           .And().GroupedOr(new string[] { "searchTags" }, tags.ToArray())
                           .Compile();

            var result = Umbraco.TypedSearch(query)
                         .Where(x => x.IsVisible());

            return(result);
        }