protected void btnSearch_Click(object sender, EventArgs e) { using (var context = ContentSearchManager.GetIndex("azure-sitecore-web-index").CreateSearchContext()) { var queryable = context.GetQueryable <AzureSearchResultItem>(); queryable = queryable.Where(s => s.Content.Contains(txtSearchTerm.Text)); queryable = queryable.Where(l => l.Language == "en"); queryable = queryable.OrderBy(o => o.Name); var results = queryable.GetResults(); lblAzureCount.Text = results.TotalSearchResults.ToString(); gvAzureResults.DataSource = results.Hits.Select(d => d.Document); gvAzureResults.DataBind(); } using (var context = ContentSearchManager.GetIndex("sitecore_test_web_index").CreateSearchContext()) { var queryable = context.GetQueryable <SearchResultItem>(); queryable = queryable.Where(s => s.Content.Contains(txtSearchTerm.Text)); queryable = queryable.Where(l => l.Language == "en"); queryable = queryable.OrderBy(o => o.Name); var results = queryable.GetResults(); lblLuceneCount.Text = results.TotalSearchResults.ToString(); gvLuceneResults.DataSource = results.Hits.Select(d => d.Document); gvLuceneResults.DataBind(); } }
/// <summary> /// Gets the system message. /// </summary> /// <param name="messageKey">The message key.</param> /// <returns>A system message based on the key</returns> public static string GetSystemMessage(string messageKey) { string indexName = string.Format(CultureInfo.InvariantCulture, IndexNameFormat, Context.Database.Name); string contentStartPath = CurrentStorefront.GlobalItem.Axes.GetItem(string.Concat(StorefrontConstants.KnowItemNames.Lookups, "/", StorefrontConstants.KnowItemNames.SystemMessages)).Paths.Path; var searchIndex = ContentSearchManager.GetIndex(indexName); using (var context = searchIndex.CreateSearchContext()) { var searchResults = context.GetQueryable <SearchResultItem>(); searchResults = searchResults.Where(item => item.Path.StartsWith(contentStartPath)); searchResults = searchResults.Where(item => item.Language == SearchNavigation.CurrentLanguageName); searchResults = searchResults.Where(item => item.Name == messageKey); var results = searchResults.GetResults(); var response = SearchResponse.CreateFromSearchResultsItems(new CommerceSearchOptions(), results); if (response.ResponseItems == null || response.TotalItemCount == 0) { return(string.Empty); } var resultItem = response.ResponseItems.FirstOrDefault(); if (resultItem == null) { return(string.Empty); } var value = resultItem.Fields[StorefrontConstants.KnownFieldNames.Value]; return(value == null ? string.Empty : value.Value); } }
/// <summary> /// Preliminary render action invoked before RenderContent <see cref="RenderContent"/>. /// </summary> /// <summary> /// Renders the content. /// </summary> /// <param name="printContext">The print context.</param> /// <param name="output">The output.</param> protected override void RenderContent(Sitecore.PrintStudio.PublishingEngine.PrintContext printContext, System.Xml.Linq.XElement output) { if (!string.IsNullOrEmpty(this.ChildDataKeyName)) { printContext.Settings.Parameters[this.ChildDataKeyName] = this.DataSource; } if (!string.IsNullOrEmpty(this.RenderingItem["Search Query"])) { string searches = this.RenderingItem["Search Query"]; using (var context = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var items = LinqHelper.CreateQuery(context, SearchStringModel.ParseDatasourceString(searches)) .Select(toItem => toItem.GetItem()); //This gives us our IQueryable foreach (var item in items) { this.DataSource = item.ID.ToString(); if (!string.IsNullOrEmpty(this.ChildDataKeyName)) { printContext.Settings.Parameters[this.ChildDataKeyName] = item.ID.ToString(); } Logger.LogMessage("Found item: " + item.Name); RenderChildren(printContext, output); } } } }
public virtual ISearchResults Search(IQuery query) { using (var context = ContentSearchManager.GetIndex((SitecoreIndexableItem)Context.Item).CreateSearchContext()) { var root = this.Settings.Root; var queryable = context.GetQueryable <SearchResultItem>(); queryable = SetQueryRoot(queryable, root); queryable = this.FilterOnPresentationOnly(queryable); queryable = FilterOnLanguage(queryable); queryable = FilterOnVersion(queryable); if (this.Settings.Templates != null && this.Settings.Templates.Any()) { queryable.Cast <IndexedItem>().Where(this.GetTemplatePredicates(this.Settings.Templates)); } else { queryable = this.FilterOnTemplates(queryable); } queryable = this.AddContentPredicates(queryable, query); queryable = AddFacets(queryable); if (query.IndexOfFirstResult > 0) { queryable = queryable.Skip(query.IndexOfFirstResult); } if (query.NoOfResults > 0) { queryable = queryable.Take(query.NoOfResults); } var results = queryable.GetResults(); return(SearchResultsRepository.Create(results, query)); } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { List <SearchResult> results = new List <SearchResult>(); if (!string.IsNullOrEmpty(Request["relatedto"])) { string indexName = string.Format("sitecore_{0}_index", Sitecore.Context.Database.Name); var index = (LuceneIndex)ContentSearchManager.GetIndex(indexName); var reader = index.CreateReader(LuceneIndexAccess.ReadOnly); var moreLikeThis = new MoreLikeThis(reader); CreateMLTQuery(moreLikeThis); string itemId = Request["relatedto"]; var searcher = (IndexSearcher)index.CreateSearcher(LuceneIndexAccess.ReadOnly); int docId = GetDocumentId(itemId, searcher); int minimumNumberShouldMatch = 5; results = ShowSimilarResults(searcher, moreLikeThis, docId, minimumNumberShouldMatch); // OR using MoreLikeThisQuery // string description = SelectedItem["Description"]; // results = ShowSimilarResultsUsingMLTQuery(searcher, description, new string[] { "title", "description" }, MinimumNumberShouldMatch); } if (!string.IsNullOrEmpty(Request["query"])) { results = SearchResults(Request["query"]); } repeaterResults.DataSource = results; repeaterResults.DataBind(); } }
public void RemoveItem(Item parent, object importRow, string itemName) { using (new LanguageSwitcher(ImportToLanguage)) { //get the parent in the specific language parent = SitecoreDB.GetItem(parent.ID); Item item = null; //search for the child by name if (string.IsNullOrEmpty(SearchIndex)) { item = parent.Axes.GetDescendants().FirstOrDefault(x => x.Name == itemName); } else { var index = ContentSearchManager.GetIndex(SearchIndex); using (var context = index.CreateSearchContext()) { var query = context.GetQueryable <SearchResultItem>().Where(m => m.Name == itemName); if (query.Any()) { item = SitecoreDB.GetItem(query.First().ItemId); } } } if (item != null) { item.Recycle(); } } }
public virtual void RunSync() { if (!SpeedyGenerationSettings.ShouldGenerateViaScheduledTask()) { return; } if (!SpeedyGenerationSettings.IsPublicFacingEnvironment()) { return; } var criticalCSSRepository = ServiceLocator.ServiceProvider.GetService <ICriticalCSSRepository>(); using (var context = ContentSearchManager.GetIndex(GlobalSettings.Index.Master).CreateSearchContext()) { foreach (var result in GetSpeedyPagesByTemplate(context.Index)) { if (result.IsSpeedyEnabledForPage() && result.IsCriticalStylesEnabledAndPossible()) { criticalCSSRepository.UpdateCriticalCSS(result, GlobalSettings.Database.Master); } } } }
public static Item GetDatasourceItem(string pathData, string itemName) { if (string.IsNullOrWhiteSpace(pathData)) { return(null); } Item itemData = Sitecore.Context.Database.GetItem(pathData); bool isBucket = itemData == null ? false : itemData.IsABucket(); var searchName = isBucket ? StringUtil.EnsurePrefix('/', itemName) : itemName; searchName = searchName.ToLowerInvariant(); pathData = pathData.ToLowerInvariant(); var indexName = GetIndexName(Context.Item); var searchContext = ContentSearchManager.GetIndex(indexName).CreateSearchContext(); var results = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Path.StartsWith(StringUtil.EnsurePostfix('/', pathData), StringComparison.OrdinalIgnoreCase) && x.Path.EndsWith(searchName, StringComparison.OrdinalIgnoreCase) && x.Language == Context.Item.Language.Name); if (isBucket) { // Dot not return non-bucketable items, like underlying contentblocks. results = results.Where(c => c["__bucketable"] == "1"); } return(results.FirstOrDefault()?.GetItem()); }
public ActionResult GetShowsForToday() { var list = new List <PlanEvent>(); var sc = new SitecoreContext(); var itemBuckets = Sitecore.Configuration.Factory.GetDatabase("master").GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Path.Contains("Sections/PlanBuckets/AsiaPlan/") && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")); if (result != null) { foreach (var item in result) { list.Add(sc.Cast <PlanEvent>(item.GetItem())); } } } } if (list.Count > 0) { string today = DateTime.Now.ToString("dd/MM/yyyy");//9/1/2015" // today = "01/12/2017"; //get shows after today 12:00 AM IEnumerable <PlanEvent> elist = list.Where(x => DateTime.ParseExact(x.BroadcastDate, "dd/MM/yyyy", null).CompareTo(DateTime.ParseExact(today, "dd/MM/yyyy", null)) > 0); list = new List <PlanEvent>(elist); //sort them in ascending list.Sort((date1, date2) => DateTime.ParseExact(date1.BroadcastDate + " " + date1.PlanTime, "dd/MM/yyyy HH:mm", null).CompareTo(DateTime.ParseExact(date2.BroadcastDate + " " + date2.PlanTime, "dd/MM/yyyy HH:mm", null))); int a = list.Count; } return(View(list)); }
public static IEnumerable <BlogPost> GetBlogPostsMK([NotNull] Item blogRoot, int startRowIndex, int maximumRows, bool descending) { try { ISearchIndex index = ContentSearchManager.GetIndex(new SitecoreIndexableItem(blogRoot)); using (IProviderSearchContext context = index.CreateSearchContext()) { Expression <Func <SearchResultItem, bool> > predicate = GetBlogItemsQueryPredicate(blogRoot); if (descending) { //.Slice(startRowIndex, maximumRows) return(context.GetQueryable <SearchResultItem>().Where(predicate) .OrderByDescending(result => result["TODO REPLACE THIS WITH THE PUBLISH DATE FIELD THAT LUCENE HAS"]) .CreateAs <BlogPost>()); } else { return(context.GetQueryable <SearchResultItem>().Where(predicate) .OrderBy(result => result["TODO REPLACE THIS WITH THE PUBLISH DATE FIELD THAT LUCENE HAS"]) .CreateAs <BlogPost>()); } } } catch (Exception ex) { Log.Error("XBlog GetBlogPosts error", ex, new object()); } return(Enumerable.Empty <BlogPost>()); }
/// <summary> /// Searches for site content items based on keyword /// </summary> /// <param name="keyword">The keyword to search for.</param> /// <param name="searchOptions">The paging options for this query</param> /// <returns> /// A list of child products /// </returns> public static SearchResponse SearchSiteByKeyword(string keyword, CommerceSearchOptions searchOptions) { const string IndexNameFormat = "sitecore_{0}_index"; string indexName = string.Format( System.Globalization.CultureInfo.InvariantCulture, IndexNameFormat, Sitecore.Context.Database.Name); var searchIndex = ContentSearchManager.GetIndex(indexName); using (var context = searchIndex.CreateSearchContext()) { //var rootSearchPath = Sitecore.IO.FileUtil.MakePath(Sitecore.Context.Site.ContentStartPath, "Home", '/'); var searchResults = context.GetQueryable <SearchResultItem>(); searchResults = searchResults.Where(item => item.Path.StartsWith(Sitecore.Context.Site.ContentStartPath)); searchResults = searchResults.Where(item => item[StorefrontConstants.KnownIndexFields.SiteContentItem] == "1"); searchResults = searchResults.Where(item => item.Language == CurrentLanguageName); searchResults = searchResults.Where(GetContentExpression(keyword)); searchResults = searchResults.Page(searchOptions.StartPageIndex, searchOptions.NumberOfItemsToReturn); var results = searchResults.GetResults(); var response = SearchResponse.CreateFromSearchResultsItems(searchOptions, results); return(response); } }
public EventsList FindEvents(int pageNo = 0, int pageSize = 4, string name = "") { pageSize = pageSize > 10 ? 10 : pageSize; pageSize = pageSize < 1 ? 1 : pageSize; var indexname = $"events_{Context.Database.Name.ToLower()}_index"; var index = ContentSearchManager.GetIndex(indexname); using (var context = index.CreateSearchContext()) { var query = context.GetQueryable <EventDetails>() .Where(i => i.Language == Context.Language.Name); if (!string.IsNullOrEmpty(name)) { query = query.Where(i => i.ContentHeading.Contains(name)); } var results = query.Page(pageNo, pageSize).GetResults(); return(new EventsList { Events = results.Hits.Select(h => h.Document).ToArray(), TotalResultCount = results.TotalSearchResults, PageSize = PageSize }); } }
public IEnumerable <Item> GetItems(Item startItem) { // If a null start item is used, simply return an empty list if (startItem == null) { return(new List <Item>()); } var items = new List <Item> { startItem }; var indexable = new SitecoreIndexableItem(startItem); using (var searchContext = ContentSearchManager.GetIndex(indexable) .CreateSearchContext(SearchSecurityOptions.DisableSecurityCheck)) { // Filter the search by the start item language and only return results that are the latest version. var results = searchContext.GetQueryable <ExtendedSearchResultItem>() .Where(x => x.Paths.Contains(startItem.ID) && x.Language == startItem.Language.Name && x.LatestVersion).GetResults().ToList(); if (results.Any()) { items.AddRange(results.Select(x => x.Document.GetItem())); } } return(items); }
public ActionResult Index() { string searchText = Request.QueryString["text"] ?? string.Empty; if (string.IsNullOrEmpty(searchText)) { return(View()); } var queryOptions = new QueryOptions { Grouping = new GroupingParameters { Fields = new[] { "type_t" }, Limit = 10 } }; var indexName = $"sitecore_{Sitecore.Context.Database.Name}_index"; var index = ContentSearchManager.GetIndex(indexName); SolrQueryResults <SearchResultItem> results; using (var context = index.CreateSearchContext()) { results = context.Query <SearchResultItem>($"(language_t:{searchText})", queryOptions); } return(View(results)); }
public IEnumerable <IEventDetailsPage> SearchEvents( IEventPipeline pipeline, EventSearchSettings searchSettings) { Throw.IfNull(searchSettings, nameof(searchSettings)); Throw.IfNull(pipeline, nameof(pipeline)); using (var ctx = ContentSearchManager.GetIndex(IndexName).CreateSearchContext()) { var queryable = ctx.GetQueryable <EventDetailsSearchItem>(); var searchResults = pipeline.Process(searchSettings, queryable).GetResults(); if (searchResults != null && searchResults.TotalSearchResults > 0) { var data = searchResults.Hits .Where(i => i.Document != null) .Select(i => i.Document); var listResult = new List <IEventDetailsPage>(); foreach (var searchItem in data) { listResult.Add(_sitecoreService.GetItem <IEventDetailsPage>(searchItem.GetItem())); } return(listResult); } } return(Enumerable.Empty <IEventDetailsPage>()); }
public static void UpdateIndex() { var settings = WeBlogSettings.Instance; var index = ContentSearchManager.GetIndex(settings.SearchIndexName + "-master"); index.Rebuild(); }
public IEnumerable <IEventTag> GetAllTags() { const string standardValues = "__Standard Values"; using (var ctx = ContentSearchManager.GetIndex(IndexName).CreateSearchContext()) { var searchResults = ctx.GetQueryable <EventTagSearchItem>() .Where(i => i.TemplateId == EventTag.TemplateId && i.Name != standardValues) .GetResults(); if (searchResults != null && searchResults.TotalSearchResults > 0) { var data = searchResults.Hits .Where(i => i.Document != null) .Select(i => i.Document); var listResult = new List <IEventTag>(); foreach (var searchItem in data) { listResult.Add(_sitecoreService.GetItem <IEventTag>(searchItem.GetItem())); } return(listResult); } } return(Enumerable.Empty <IEventTag>()); }
/// <summary> /// Search Item from index /// </summary> /// <param name="contextItem">Context item</param> /// <param name="itemName">Item name</param> /// <param name="templateId">Item teamplate Id</param> /// <param name="searchRootNode">Search root node</param> /// <param name="includeSiteName">Include site name</param> /// <returns></returns> private Item SearchItemFromIndex(Item contextItem, string itemName, ID templateId, ID searchRootNode, bool includeSiteName) { string siteName = string.Empty; // Seperate siteName from itemName if (includeSiteName) { siteName = itemName?.Split(new[] { Constants.Blank }, StringSplitOptions.RemoveEmptyEntries)?.Last() ?? string.Empty; itemName = itemName?.Replace(siteName, string.Empty); } // try to search and resolve item from index var indexable = new SitecoreIndexableItem(contextItem); using (var searchContext = ContentSearchManager.GetIndex(indexable).CreateSearchContext()) { var results = searchContext.GetQueryable <SearchResultItem>() .Where(x => x.TemplateId == templateId && x.Paths.Contains(searchRootNode) && x.Language.Equals(Context.Language.Name, StringComparison.InvariantCultureIgnoreCase) && x.Name.Equals(itemName, StringComparison.InvariantCultureIgnoreCase)) .ToList(); if (!results.Any()) { return(null); } return(includeSiteName && !string.IsNullOrEmpty(siteName) ? results.First(x => x.GetItem().SiteName().NormalizeItemName() == siteName)?.GetItem() ?? null : results.First()?.GetItem() ?? null); } }
public override void Process(HttpRequestArgs args) { if (Context.Item == null) { //http://addemo/Books{/2018/09/07/11/18/}bookname var requestUrl = args.Url.ItemPath; // remove last element from path and see if resulting path is a bucket var index = requestUrl.LastIndexOf('/'); if (index > 0) { var bucketPath = requestUrl.Substring(0, index); var bucketItem = args.GetItem(bucketPath); if (bucketItem != null && BucketManager.IsBucket(bucketItem)) { var itemName = requestUrl.Substring(index + 1).Replace("-", " "); // locate item in bucket by name using (var searchContext = ContentSearchManager.GetIndex("sitecore_web_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>(). Where(x => x.Name == itemName && x.TemplateId == BookTemplate.Book.ID) .FirstOrDefault(); if (result != null) { Context.Item = result.GetItem(); } } } } } }
public Item SearchPeopleByOktaId(string identifier) { Sitecore.Diagnostics.Assert.IsNotNullOrEmpty(identifier, "identifier can't be null or empty"); var peopleFolder = _database.GetItem(Constants.Person.Folder.FOLDER_ID); Sitecore.Diagnostics.Assert.IsNotNull(peopleFolder, "can't find people folder"); var indexable = new SitecoreIndexableItem(peopleFolder); using (var context = ContentSearchManager.GetIndex(indexable).CreateSearchContext()) { //original search query conditions that pull back blog items with tags in common var searchQuery = context.GetQueryable <PeopleDataItem>().Where(x => x.TemplateId == Constants.Person.Template.TEMPLATE_ID && x.Paths.Contains(peopleFolder.ID)); var predicate = PredicateBuilder.True <PeopleDataItem>(); predicate = predicate.And(x => x.OktaId == identifier); searchQuery = searchQuery.Where(predicate); var searchResults = searchQuery.GetResults(); if (searchResults != null && searchResults.Any()) { var person = searchResults.FirstOrDefault(); var personItem = _database.GetItem(person.Document.ItemId); return(personItem); } } return(null); }
public virtual ISearchResults Search(IQuery query) { using (var context = ContentSearchManager.GetIndex(this.IndexName).CreateSearchContext()) { var root = this.Settings.Root; var queryable = context.GetQueryable <SearchResultItem>(); queryable = SetQueryRoot(queryable, root); queryable = this.FilterOnPresentationOnly(queryable); queryable = FilterOnLanguage(queryable); queryable = this.FilterOnTemplates(queryable); queryable = this.AddContentPredicates(queryable, query); queryable = AddFacets(queryable); if (query.IndexOfFirstResult > 0) { queryable = queryable.Skip(query.IndexOfFirstResult); } if (query.NoOfResults > 0) { queryable = queryable.Take(query.NoOfResults); } var results = queryable.GetResults(); return(SearchResultsRepository.Create(results, query)); } }
public static List <ID> GetTagItemIds(IEnumerable <string> taxonomyItemNames) { try { Tag tagRepository = GetTagRepositoryItem(); using (IProviderSearchContext context = ContentSearchManager.GetIndex(new SitecoreIndexableItem(tagRepository.InnerItem)).CreateSearchContext()) { Expression <Func <SearchResultItem, bool> > predicate = PredicateBuilder.True <SearchResultItem>(); predicate = predicate.And(item => item.TemplateId == ID.Parse(Tag.TagTemplateId)); predicate = predicate.And(item => item.Language == Context.Language.Name); Expression <Func <SearchResultItem, bool> > predicate1 = PredicateBuilder.True <SearchResultItem>(); taxonomyItemNames.ForEach(name => { predicate1 = predicate1.Or(p => p.Name == name); }); predicate = predicate.And(predicate1); List <ID> returnList = context.GetQueryable <SearchResultItem>().Where(predicate).Select(result => result.ItemId).ToList(); return(returnList); } } catch (Exception ex) { Log.Error("XBlog GetTaxonomyItemIds error", ex, new object()); } return(new List <ID>(0)); }
public virtual ISearchResults FindAll(int skip, int take) { using (var context = ContentSearchManager.GetIndex((SitecoreIndexableItem)Context.Item).CreateSearchContext()) { var root = this.Settings.Root; var queryable = context.GetQueryable <SearchResultItem>(); queryable = SetQueryRoot(queryable, root); queryable = FilterOnLanguage(queryable); queryable = FilterOnVersion(queryable); queryable = queryable.Where(PredicateBuilder.True <SearchResultItem>()); if (this.Settings.Templates != null && this.Settings.Templates.Any()) { queryable = queryable.Cast <IndexedItem>().Where(this.GetTemplatePredicates(this.Settings.Templates)); } if (skip > 0) { queryable = queryable.Skip(skip); } if (take > 0) { queryable = queryable.Take(take); } var results = queryable.GetResults(); return(SearchResultsRepository.Create(results, null)); } }
public void GetThumbnailPath(PlanEvent obj) { if (!string.IsNullOrWhiteSpace(obj.PlanTitleID)) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(obj.PlanTitleID) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null) { Item item = result.GetItem(); if (item == null) { return; } var portraitimage = (Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]; var landscape = (Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]; if (portraitimage != null && (portraitimage).MediaItem != null) { string imagepath = ConvertSitecorePathtoMediaMasterPath((portraitimage).MediaItem.Paths.ContentPath); obj.PortraitImage = imagepath; } if (landscape != null && (landscape).MediaItem != null) { string imagepath = ConvertSitecorePathtoMediaMasterPath((landscape).MediaItem.Paths.ContentPath); obj.LandscapeImage = imagepath; } } } } } }
protected void ResetCache() { var index = ContentSearchManager.GetIndex(Constants.Index.MasterIndex); index.RebuildAsync(IndexingOptions.Default, System.Threading.CancellationToken.None).Wait(); CacheManager.ClearAllCaches(); }
public PlanEvent GetThumbnailBytes(PlanEvent obj) { byte[] bytes = null; if (obj != null) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(obj.PlanTitleID) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null) { if (!string.IsNullOrWhiteSpace(result.GetItem().Fields["Portrait Image"].Value)) { MediaItem mediaitem = ((Sitecore.Data.Fields.ImageField)result.GetItem().Fields["Portrait Image"]).MediaItem; Stream stream = new MediaItem(mediaitem).GetMediaStream(); bytes = new byte[stream.Length]; int l = stream.Read(bytes, 0, (int)stream.Length); obj.PortraitImageByte = bytes; } if (!string.IsNullOrWhiteSpace(result.GetItem().Fields["Landscape Image"].Value)) { MediaItem mediaitem = ((Sitecore.Data.Fields.ImageField)result.GetItem().Fields["Landscape Image"]).MediaItem; Stream stream = new MediaItem(mediaitem).GetMediaStream(); bytes = new byte[stream.Length]; int l = stream.Read(bytes, 0, (int)stream.Length); obj.LandscapeImageByte = bytes; } } } } } return(obj); }
public IHttpActionResult Flush() { var driver = new MongoDbDriver(ConfigurationManager.ConnectionStrings["analytics"].ConnectionString); driver.ResetDatabase(); var item = (Context.ContentDatabase ?? Context.Database).GetItem("/sitecore/media library/Images/xgen"); item?.Delete(); var sql = new SqlReportingStorageProvider("reporting"); sql.ExcludedTableFromDataDeletion("dbo", "Segments"); sql.DeleteAllReportingData(); var index = ContentSearchManager.GetIndex(CustomerIntelligenceConfig.ContactSearch.SearchIndexName); index.Reset(); index.Refresh(); using (var ctx = index.CreateUpdateContext()) { ctx.Optimize(); } return(Ok()); }
public void SetThumbnailPath(string PlanTitleId, Item mi, string type) { if (!string.IsNullOrWhiteSpace(PlanTitleId)) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(PlanTitleId) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null && mi != null) { using (new SecurityDisabler()) { Item item = result.GetItem(); item.Editing.BeginEdit(); if (type.Equals("portrait")) { ((Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]).MediaID = mi.ID; // ((Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]).UpdateLink(mi.Links.GetAllLinks()[0]); } else { ((Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]).MediaID = mi.ID; // ((Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]).Value = mi.Parent.Paths.FullPath; } item.Editing.EndEdit(); } } } } } }
public static Author GetAuthorByName(Item currentItem, string authorName) { try { BlogSettings settingsItem = General.DataManager.GetBlogSettingsItem(currentItem); ISearchIndex index = ContentSearchManager.GetIndex(new SitecoreIndexableItem(settingsItem.AuthorFolder)); using (IProviderSearchContext context = index.CreateSearchContext()) { Expression <Func <SearchResultItem, bool> > predicate = PredicateBuilder.True <SearchResultItem>(); predicate = predicate.And(item => item.TemplateId == ID.Parse(Author.AuthorTemplateId) && item.Paths.Contains(settingsItem.AuthorFolder.ID)); predicate = predicate.And(c => c[Author.AuthorFullNameField] == authorName); IQueryable <SearchResultItem> results = context.GetQueryable <SearchResultItem>().Where(predicate).OrderBy(t => t.Name); if (results.Any()) { return(results.FirstOrDefault().GetItem().CreateAs <Author>()); } } } catch (Exception ex) { Log.Error("XBlog GetCategory error", ex, new object()); } return(null); }
/// <summary> /// Search for comments. /// </summary> /// <param name="item">The root item under which to search for comments.</param> /// <param name="projection">The function used to project the search results.</param> /// <returns>A list of the found comments.</returns> protected virtual IList <T> SearchComments <T>(Item item, Func <IQueryable <CommentResultItem>, IList <T> > projection) { if (item == null) { return(new T[0]); } var blog = ManagerFactory.BlogManagerInstance.GetCurrentBlog(item); if (blog == null) { return(new T[0]); } var indexName = Settings.SearchIndexName; if (string.IsNullOrEmpty(indexName)) { return(new T[0]); } var index = ContentSearchManager.GetIndex(indexName + "-" + item.Database.Name); if (index == null) { return(new T[0]); } using (var context = index.CreateSearchContext()) { var queryable = CreateQueryable(context, item, blog); return(projection(queryable)); } }