protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
        {
            var queryText   = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var area        = ProviderConstants.PageArea;
            var contentLink = ContentReference.Parse(queryText);

            if (contentLink.ProviderName == ProviderConstants.CatalogProviderKey)
            {
                area = ProviderConstants.CommerceCatalogArea;
            }

            var searchQuery = new Query(queryText);

            searchQuery.Parameters.Add(Core.Models.Constants.MoreLikeThisId, queryText);

            var contentReferences = Enumerable.Empty <ContentReference>();
            var searchProvider    = _searchProvidersManager.GetEnabledProvidersByPriority(area, true).FirstOrDefault();

            if (searchProvider != null)
            {
                contentReferences = searchProvider.Search(searchQuery)
                                    .Select(r => ContentReference.Parse(r.Metadata["Id"]))
                                    .Distinct();
            }

            return(_contentRepository.GetItems(contentReferences,
                                               _languageSelectorFactory.AutoDetect(parameters.AllLanguages)));
        }
Example #2
0
        protected virtual ContentReference GetContentLink(ContentQueryParameters parameters, ListingMode listingMode)
        {
            if (listingMode == ListingMode.WidgetListing)
            {
                return(ReferenceConverter.GetRootLink());
            }

            return(parameters.ReferenceId);
        }
Example #3
0
        protected override ITypeSearch <SitePageData> Filter(
            ITypeSearch <SitePageData> searchRequest,
            ContentQueryParameters parameters)
        {
            var userName = HttpContext.Current.User.Identity.Name;

            return(searchRequest.Filter(x => x.MatchTypeHierarchy(
                                            typeof(IChangeTrackable)) &
                                        ((IChangeTrackable)x).CreatedBy.Match(userName)));
        }
        public IEnumerable <EnhancedStructureStoreContentDataModel> GetLatestVersions(IEnumerable <ContentReference> ids,
                                                                                      NameValueCollection queryString)
        {
            if (ids == null)
            {
                return(null);
            }

            var draftLinks = new List <ContentReference>();

            foreach (var id in ids)
            {
                if (_currentProject.ProjectId.HasValue)
                {
                    var projectReference = _projectContentResolver.GetProjectReference(id, _currentProject.ProjectId.Value);
                    draftLinks.Add(projectReference);
                    continue;
                }

                var content = _contentLoader.Get <IContent>(id) as IVersionable;
                if (content == null)
                {
                    draftLinks.Add(id);
                    continue;
                }

                if (content.Status == VersionStatus.Published)
                {
                    var contentVersion =
                        _contentVersionRepository.LoadCommonDraft(id, _languageResolver.GetPreferredCulture().Name);
                    if (contentVersion != null)
                    {
                        draftLinks.Add(contentVersion.ContentLink);
                        continue;
                    }
                }

                draftLinks.Add(id);
            }

            var contents = _contentLoader.GetItems(draftLinks,
                                                   new LoaderOptions {
                LanguageLoaderOption.FallbackWithMaster()
            });
            var queryParameters = new ContentQueryParameters
            {
                AllParameters    = queryString,
                CurrentPrincipal = PrincipalInfo.CurrentPrincipal
            };

            // The ContentVersionFilter modify content links.
            // We have to use this filter here to make sure that we will use proper links
            return(_contentStoreModelCreator
                   .CreateContentDataStoreModels <EnhancedStructureStoreContentDataModel>(contents, queryParameters).ToList());
        }
Example #5
0
        protected virtual ListingMode GetListingMode(ContentQueryParameters parameters)
        {
            var         listingModeString = parameters.AllParameters["listingMode"];
            ListingMode listingMode;

            if (listingModeString != null && Enum.TryParse(listingModeString, out listingMode))
            {
                return(listingMode);
            }

            return(ListingMode.NoListing);
        }
Example #6
0
 protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
 {
     try
     {
         return(_filterContentFactory.GetItems(parameters));
     }
     catch (SocketException)
     {
         _lastConnectionCheck = DateTime.UtcNow.AddDays(-1);
         return(Enumerable.Empty <IContent>());
     }
 }
        protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
        {
            var queryText         = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var searchQuery       = new Query(queryText);
            var contentReferences = Enumerable.Empty <ContentReference>();
            var searchProvider    = _searchProvidersManager.GetEnabledProvidersByPriority("CMS/Pages", true).FirstOrDefault();

            if (searchProvider != null)
            {
                contentReferences = searchProvider.Search(searchQuery).Select(result => ContentReference.Parse(result.Metadata["Id"])).Distinct();
            }
            return(_contentRepository.GetItems(contentReferences, _languageSelectorFactory.AutoDetect(parameters.AllLanguages)));
        }
Example #8
0
        protected override IEnumerable<IContent> GetContent(ContentQueryParameters parameters)
        {
            if(HttpContext.Current.Session != null)
            HttpContext.Current.Session["ValidationResult"] = "";
            bool isLeftRule = (HttpUtility.HtmlDecode(parameters.AllParameters["direction"]) == "left");
            var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var relationPageLeft = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageLeft"]);
            string relationPageRightUrl = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]);

            //string relationPageRight = "";
            /*
            if (!string.IsNullOrEmpty(relationPageRightUrl)) {

                Match match = regex.Match(HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]));
                if (match.Success)
                {
                    relationPageRight = (match.Groups[1].Value);
                }
            }*/
            var relationRule = HttpUtility.HtmlDecode(parameters.AllParameters["relationRule"]);
            var action = HttpUtility.HtmlDecode(parameters.AllParameters["action"]);
            PageReference contextPage = (relationPageLeft != null) ? new PageReference(relationPageLeft) : null;

            PageDataCollection result = new PageDataCollection();

            if (contextPage != null && relationPageLeft != null)
                try
                {
                    List<int> relations = new List<int>();
                    if(RuleEngine.Instance.GetRule(relationRule).RuleTextLeft == RuleEngine.Instance.GetRule(relationRule).RuleTextRight)
                        relations = RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule));
                    else
                    relations = isLeftRule ? RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule), Rule.Direction.Left).Distinct<int>().ToList<int>() : RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule), Rule.Direction.Right).Distinct<int>().ToList<int>();
                    foreach (int pageid in relations)
                    {
                        try
                        {
                            result.Add(PageEngine.GetPage(pageid));
                        }
                        catch
                        {
                            Logging.Warning(string.Format("Error fetching page {0} related to {1}", pageid, contextPage.ID));
                        }
                    }
                }
                catch {
                    Logging.Warning(string.Format("Error fetching relations from page {0}", contextPage.ID));
                }

            return result;
        }
Example #9
0
        public override IEnumerable <FilterContentWithOptions> GetItems(ContentQueryParameters parameters)
        {
            var listingMode = GetListingMode(parameters);
            var contentLink = GetContentLink(parameters, listingMode);

            var filterModelString = parameters.AllParameters["filterModel"];

            var cacheKey     = String.Concat("FacetService#", contentLink, "#", filterModelString);
            var cachedResult = GetCachedContent <IEnumerable <FilterContentWithOptions> >(cacheKey);

            if (cachedResult != null)
            {
                return(cachedResult);
            }

            var content = ContentRepository.Get <IContent>(contentLink);

            var filters = new Dictionary <string, IEnumerable <object> >();
            var filter  = CheckedOptionsService.CreateFilterModel(filterModelString);

            if (filter != null && filter.CheckedItems != null)
            {
                filters = filter.CheckedItems.Where(x => x.Value != null)
                          .ToDictionary(k => k.Key, v => v.Value.Select(x => x));
            }

            var searchType           = GetSearchType(filter) ?? typeof(CatalogContentBase);
            var possiblefacetQueries = FilterContentsWithGenericTypes.Where(x =>
                                                                            x.ContentType.IsAssignableFrom(searchType) ||
                                                                            searchType.IsAssignableFrom(x.ContentType)).ToList();

            var subQueries = new Dictionary <FilterContentModelType, ISearch>();

            AddSubqueries(possiblefacetQueries, subQueries, searchType);

            var filterContentModelTypes = GetSupportedFilterContentModelTypes(searchType).ToList();

            AddFiltersToSubQueries(content, subQueries, filterContentModelTypes, filters, searchType);

            if (subQueries.Any())
            {
                var result = GetFilterResult(subQueries, listingMode).ToList();
                Cache(cacheKey, result);

                return(result);
            }

            return(Enumerable.Empty <FilterContentWithOptions>());
        }
        protected override IEnumerable<IContent> GetContent(ContentQueryParameters parameters)
        {
            bool isLeftRule = (HttpUtility.HtmlDecode(parameters.AllParameters["direction"]) == "left");
            var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var relationPageLeft = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageLeft"]);
            var relationPageRight = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]);
            var relationRule = HttpUtility.HtmlDecode(parameters.AllParameters["relationRule"]);
            PageReference contextPage = (relationPageLeft != null) ? new PageReference(relationPageLeft): null;

            IEnumerable<IContent> result = new PageDataCollection();

            if (contextPage != null)
                result = RuleEngine.Instance.SearchRelations(RuleEngine.Instance.GetRule(relationRule), contextPage.ID, queryText, isLeftRule);

            return result as PageDataCollection;
        }
Example #11
0
        protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
        {
            bool          isLeftRule        = (HttpUtility.HtmlDecode(parameters.AllParameters["direction"]) == "left");
            var           queryText         = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var           relationPageLeft  = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageLeft"]);
            var           relationPageRight = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]);
            var           relationRule      = HttpUtility.HtmlDecode(parameters.AllParameters["relationRule"]);
            PageReference contextPage       = (relationPageLeft != null) ? new PageReference(relationPageLeft): null;

            IEnumerable <IContent> result = new PageDataCollection();

            if (contextPage != null)
            {
                result = RuleEngine.Instance.SearchRelations(RuleEngine.Instance.GetRule(relationRule), contextPage.ID, queryText, isLeftRule);
            }

            return(result as PageDataCollection);
        }
        protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
        {
            var expiredPages = _expiredPagesData.GetPages(
                ContentReference.StartPage,
                DateTime.MinValue,
                DateTime.Now,
                ContentLanguage.PreferredCulture.Name,
                false,
                String.Empty,
                50,
                0,
                out _);

            var list = new List <IContent>();

            list.AddRange(expiredPages);

            return(list);
        }
Example #13
0
        public RestResult Get(
            ContentReference id,
            string query,
            ContentReference referenceId,
            IEnumerable <SortColumn> sortColumns,
            ItemRange range)
        {
            var queryParameters = new ContentQueryParameters
            {
                ReferenceId      = referenceId,
                SortColumns      = sortColumns,
                Range            = range,
                AllParameters    = ControllerContext.HttpContext.Request.QueryString,
                CurrentPrincipal = PrincipalInfo.CurrentPrincipal,
            };

            var filterOptions = _facetService.GetItems(queryParameters).ToList();

            return(Rest(filterOptions));
        }
        public virtual ContentRange ExecuteQuery(ContentQueryParameters parameters)
        {
            var searchRequest = SearchClient.Search <TContent>()
                                .FilterOnLanguages(new [] { parameters.PreferredCulture.Name });

            var searchPhrase     = parameters.AllParameters["q"];
            var hasFreeTextQuery = !string.IsNullOrWhiteSpace(searchPhrase) && searchPhrase != "*";

            if (hasFreeTextQuery)
            {
                searchRequest = ApplyTextSearch(searchRequest, searchPhrase);
            }

            searchRequest = Filter(searchRequest, parameters);

            searchRequest = ApplyVisibilityFilter(searchRequest);

            if (parameters.SortColumns != null && parameters.SortColumns.Any())
            {
                var sortColumn = parameters.SortColumns.FirstOrDefault();
                searchRequest = ApplySorting(searchRequest, sortColumn);
            }

            var result = searchRequest
                         .Skip(parameters.Range.Start)
                         .Take(parameters.Range.End)
                         .GetContentResult(CacheForSeconds, true);

            var itemRange = new ItemRange
            {
                Total = result.TotalMatching,
                Start = parameters.Range.Start,
                End   = parameters.Range.End
            };
            var contentRange = new ContentRange(result.OfType <IContent>(), itemRange);

            return(contentRange);
        }
Example #15
0
 protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
 {
     //Is not used for this class.
     throw new System.NotImplementedException();
 }
Example #16
0
 protected override IEnumerable <IContent> Sort(IEnumerable <IContent> items, ContentQueryParameters parameters)
 {
     return(items);
 }
Example #17
0
        protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
        {
            if (HttpContext.Current.Session != null)
            {
                HttpContext.Current.Session["ValidationResult"] = "";
            }
            bool   isLeftRule           = (HttpUtility.HtmlDecode(parameters.AllParameters["direction"]) == "left");
            var    queryText            = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            var    relationPageLeft     = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageLeft"]);
            string relationPageRightUrl = HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]);


            //string relationPageRight = "";

            /*
             * if (!string.IsNullOrEmpty(relationPageRightUrl)) {
             *
             *  Match match = regex.Match(HttpUtility.HtmlDecode(parameters.AllParameters["relationPageRight"]));
             *  if (match.Success)
             *  {
             *      relationPageRight = (match.Groups[1].Value);
             *  }
             * }*/
            var           relationRule = HttpUtility.HtmlDecode(parameters.AllParameters["relationRule"]);
            var           action       = HttpUtility.HtmlDecode(parameters.AllParameters["action"]);
            PageReference contextPage  = (relationPageLeft != null) ? new PageReference(relationPageLeft) : null;



            PageDataCollection result = new PageDataCollection();

            if (contextPage != null && relationPageLeft != null)
            {
                try
                {
                    List <int> relations = new List <int>();
                    if (RuleEngine.Instance.GetRule(relationRule).RuleTextLeft == RuleEngine.Instance.GetRule(relationRule).RuleTextRight)
                    {
                        relations = RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule));
                    }
                    else
                    {
                        relations = isLeftRule ? RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule), Rule.Direction.Left).Distinct <int>().ToList <int>() : RelationEngine.Instance.GetRelationPagesForPage(contextPage.ID, RuleEngine.Instance.GetRule(relationRule), Rule.Direction.Right).Distinct <int>().ToList <int>();
                    }
                    foreach (int pageid in relations)
                    {
                        try
                        {
                            result.Add(PageEngine.GetPage(pageid));
                        }
                        catch
                        {
                            Logging.Warning(string.Format("Error fetching page {0} related to {1}", pageid, contextPage.ID));
                        }
                    }
                }
                catch {
                    Logging.Warning(string.Format("Error fetching relations from page {0}", contextPage.ID));
                }
            }



            return(result);
        }
Example #18
0
 public abstract IEnumerable <T> GetItems(ContentQueryParameters parameters);
Example #19
0
 protected virtual ITypeSearch <TContent> Filter(ITypeSearch <TContent> searchRequest, ContentQueryParameters parameters)
 {
     return(searchRequest);
 }
        protected override IEnumerable<IContent> GetContent(ContentQueryParameters parameters)
        {
            var videoList = new List<InstaImage>();
            var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            if (queryText != "episerver")
                return videoList;

            var providerManager = ServiceLocator.Current.GetInstance<IContentProviderManager>();
            var provider = providerManager.ProviderMap.GetProvider("instagramprovider") as InstagramContentProvider;

            provider.RefreshItems(new List<BasicContent>());
            var entryPoint = ContentRepository.Service.GetChildren<InstagramFolder>(ContentReference.RootPage).FirstOrDefault();
            var type = ContentTypeRepository.Service.Load<InstaImage>();
            WebResponse response = ProcessWebRequest("https://api.instagram.com/v1/tags/" + queryText + "/media/recent?client_id=YOUR_ID_HERE");

            using (var sr = new System.IO.StreamReader(response.GetResponseStream()))
            {

                InstagramObject _instagram = JsonConvert.DeserializeObject<InstagramObject>(sr.ReadToEnd());

                int totalPhotos = _instagram.data.Count - 1;

                int count = 0;
                while (count < totalPhotos)
                {

                    string tags = "";

                    foreach (object o in _instagram.data[count].tags)
                    {
                        tags += "#" + o + ",";

                    }

                    var video =
                        ContentFactory.Service.CreateContent(type, new BuildingContext(type)
                        {
                            Parent = entryPoint,
                            LanguageSelector = LanguageSelector.AutoDetect(),
                            SetPropertyValues = true
                        }) as InstaImage;

                    video.ContentLink = new ContentReference(Convert.ToInt32(CountHack.count), "instagramprovider");
                    video.Name = _instagram.data[count].images.low_resolution.url; // _instagram.data[count].caption != null ? _instagram.data[count].caption.text : "No caption.";
                    video.Created = DateTime.Now.Subtract(new TimeSpan(2, 0, 0, 0));
                    video.Saved = new DateTime(Convert.ToInt32(_instagram.data[count].created_time));
                    video.Changed = video.Created;
                    video.CreatedBy = _instagram.data[count].user.username;
                    video.InstagramId = _instagram.data[count].id;
                    video.IsPendingPublish = false;
                    video.StartPublish = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0));
                    video.Status = VersionStatus.Published;
                    video.IsPendingPublish = false;
                    video.ImageUrl = _instagram.data[count].images.standard_resolution.url;
                    video.ThumbnailUrl = _instagram.data[count].images.thumbnail.url;
                    video.Likes = _instagram.data[count].likes.count;
                    video.Text = _instagram.data[count].caption.text;
                    video.MakeReadOnly();
                    CountHack.count++;
                    count++;
                    provider.Add(video);
                    //( yield return video;
                    videoList.Add(video);

                }

            }
            return videoList;

            //    return _contentRepository.Get<StartPage>(ContentReference.StartPage).Yield();

            //var provider = new InstagramContentProvider(ServiceLocator.Current.GetInstance<IContentTypeRepository>());
            ////return provider.GetAll();

            //var queryText = HttpUtility.HtmlDecode(parameters.AllParameters["queryText"]);
            //var searchQuery = new Query(queryText);
            //var contentReferences = Enumerable.Empty<ContentReference>();
            //var searchProvider = _searchProvidersManager.GetEnabledProvidersByPriority("CMS/Pages", true).FirstOrDefault();

            //if (searchProvider != null)
            //{
            //    contentReferences = searchProvider.Search(searchQuery).Select(result => ContentReference.Parse(result.Metadata["Id"])).Distinct();
            //}
            //return _contentRepository.GetItems(contentReferences, _languageSelectorFactory.AutoDetect(parameters.AllLanguages));
        }
Example #21
0
 protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters)
 => base.GetContent(parameters).Where(x => !x.ContentLink.Equals(ContentExtensions.GetSettingsPage().MachineMediaFolder));