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))); }
protected virtual ContentReference GetContentLink(ContentQueryParameters parameters, ListingMode listingMode) { if (listingMode == ListingMode.WidgetListing) { return(ReferenceConverter.GetRootLink()); } return(parameters.ReferenceId); }
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()); }
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); }
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))); }
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; }
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; }
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); }
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); }
protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters) { //Is not used for this class. throw new System.NotImplementedException(); }
protected override IEnumerable <IContent> Sort(IEnumerable <IContent> items, ContentQueryParameters parameters) { return(items); }
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); }
public abstract IEnumerable <T> GetItems(ContentQueryParameters parameters);
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)); }
protected override IEnumerable <IContent> GetContent(ContentQueryParameters parameters) => base.GetContent(parameters).Where(x => !x.ContentLink.Equals(ContentExtensions.GetSettingsPage().MachineMediaFolder));