protected IArticle GetArticle(string articleNumber) { IArticleSearchFilter filter = ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); return(ArticleSearch.Search(filter).Articles.FirstOrDefault()); }
public IArticleSearchResults Search(IArticleSearchFilter filter) { using (var context = SearchContextFactory.Create()) { var query = context.GetQueryable <ArticleSearchResultItem>() .Filter(i => i.TemplateId == IArticleConstants.TemplateId) .FilterByPublications(filter) .FilterByAuthor(filter) .FilterByCompany(filter) .FilterTaxonomies(filter, ItemReferences, GlobalService) .ExcludeManuallyCurated(filter) .FilteryByArticleNumbers(filter) .FilteryByLegacyArticleNumber(filter) .FilteryByEScenicID(filter) .FilteryByRelatedId(filter) .ApplyDefaultFilters(); if (filter.PageSize > 0) { query = query.Page(filter.Page > 0 ? filter.Page - 1 : 0, filter.PageSize); } query = query.OrderByDescending(i => i.ActualPublishDate); var results = query.GetResults(); return(new ArticleSearchResults { Articles = results.Hits.Select(h => GlobalService.GetItem <IArticle>(h.Document.ItemId.Guid)) }); } }
private string BuildReplaceRelatedArticles(string articleNumber) { HtmlString replace = new HtmlString(""); IArticleSearchFilter filter = _dependencies.ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); var results = _dependencies.ArticleSearch.Search(filter); if (!results.Articles.Any()) { return(replace.ToHtmlString()); } var article = results.Articles.FirstOrDefault(); if (article == null) { return(replace.ToHtmlString()); } string src = _dependencies.GlobalService.GetPublicationName(article._Id); string date = (article.Actual_Publish_Date > DateTime.MinValue ? article.Actual_Publish_Date.ToString("d MMM, yyyy") : ""); var articleText = $" <em>(Also see \"{WebUtility.HtmlDecode(article.Title)}\" - {src}, {date}.)</em>"; replace = new HtmlString(articleText); return(replace.ToHtmlString()); }
private string BuildArticleMatch(string articleNumber) { try { IArticleSearchFilter filter = _.ArticleSearch.CreateFilter(); if (articleNumber.Length <= 8) { filter.ArticleNumbers = articleNumber.SingleToList(); } else { filter.LegacyArticleNumber = articleNumber.Trim(); } filter.PageSize = 1; var results = _.ArticleSearch.Search(filter); if (results.Articles.Any()) { var article = results.Articles.FirstOrDefault(); if (article != null) { return ($" (Also see \"<a href='{article._Url}'>{WebUtility.HtmlDecode(article.Title)}</a>\" - {_.GlobalService?.GetPublicationName(article._Id)}, " + $"{(article.Actual_Publish_Date > DateTime.MinValue ? article.Actual_Publish_Date.ToString("d MMM, yyyy") : "")}.)"); } } } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Error when evaluating company match token", ex, "LogFileAppender"); } return(string.Empty); }
/// <summary> /// redirects all article urls that have an article number but no trailing title /// </summary> /// <param name="articleNumber"></param> /// <param name="prefix"></param> public void Get(int articleNumber, string prefix) { string numFormat = $"{prefix}{articleNumber:D6}"; //find the new article page IArticleSearchFilter filter = ArticleSearcher.CreateFilter(); filter.PageSize = 1; filter.Page = 1; filter.ArticleNumbers = numFormat.SingleToList(); var results = ArticleSearcher.Search(filter); if (!results.Articles.Any()) { return; } string newPath = ArticleSearch.GetArticleCustomPath(results.Articles.First()); if (!HttpContext.Current.Response.IsRequestBeingRedirected) { HttpContext.Current.Response.RedirectPermanent(newPath, true); } }
protected List <IArticle> GetFreeTrialArticles(Item rootItem) { IArticleSearch searcher = DependencyResolver.Current.GetService <IArticleSearch>(); if (searcher == null) { return(new List <IArticle>()); } IArticleSearchFilter filter = searcher.CreateFilter(); var results = searcher.FreeWithRegistrationArticles(currentDB.Name); string resultsFormat = "There were {0} articles marked 'Free with Registration'"; string resultFormat = "There was {0} article marked 'Free with Registration'"; if (results.Articles.Any()) { try { var filteredResults = results.Articles.Where(a => (a._Path != null && a._Path.StartsWith(rootItem.Paths.FullPath))).ToList(); ltlResultCount.Text = string.Format((filteredResults.Count > 1) ? resultsFormat : resultFormat, filteredResults.Count); return(filteredResults); } catch (Exception ex) { _logger.Error("Error in GetFreeTrialArticles tab", ex); return(new List <IArticle>()); } } else { ltlResultCount.Text = string.Format(resultsFormat, 0); return(new List <IArticle>()); } }
public IListableViewModel Create(string articleNumber) { IArticleSearchFilter filter = ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); filter.PageSize = 1; var results = ArticleSearch.Search(filter); return(Create(results.Articles.FirstOrDefault())); }
public void Process(HttpRequestArgs args) { Sitecore.Diagnostics.Log.Info("Started ArticleItemResolver", " ArticleItemResolver "); Assert.ArgumentNotNull((object)args, "args"); if (Context.Item != null || Context.Database == null || args.Url.ItemPath.Length == 0) { return; } var match = GetArticleNumberFromRequestItemPath(args.Url.ItemPath); if (string.IsNullOrEmpty(match.ArticleNumber)) { return; } //find the new article page IArticleSearchFilter filter = ArticleSearcher.CreateFilter(); filter.PageSize = 1; filter.Page = 1; filter.ArticleNumbers = match.ArticleNumber.SingleToList(); var results = ArticleSearcher.Search(filter); IArticle a = results.Articles.FirstOrDefault(); if (a == null) { return; } string urlTitle = ArticleSearch.GetCleansedArticleTitle(a); // a._Name.ToLower().Replace(" ", "-"); if (!urlTitle.Equals(match.ArticleTitle, System.StringComparison.InvariantCultureIgnoreCase)) { if (!HttpContext.Current.Response.IsRequestBeingRedirected) { HttpContext.Current.Response.RedirectPermanent(ArticleSearch.GetArticleCustomPath(a), true); } } Item i = SitecoreContext.GetItem <Item>(a._Id); if (i == null) { return; } Context.Item = i; args.Url.ItemPath = i.Paths.FullPath; Context.Request.ItemPath = i.Paths.FullPath; Sitecore.Diagnostics.Log.Info("Ended ArticleItemResolver", " ArticleItemResolver"); }
public string GetLastArticleNumber(Guid publicationGuid) { IArticleSearchFilter filter = _articleSearcher.CreateFilter(); var results = _articleSearcher.Search(filter); if (!results.Articles.Any()) { return(0.ToString(Constants.ArticleNumberLength)); } IEnumerable <string> articles = results.Articles.Select(a => a.Article_Number).OrderByDescending(b => b); string num = articles.First().Replace(SitecoreUtil.GetPublicationPrefix(publicationGuid), ""); int n = int.Parse(num); return((n + 1).ToString(Constants.ArticleNumberLength)); }
public static List <IArticle> SearchArticlesByArticleNumbers(List <string> articleNumbers) { using (var scope = AutofacConfig.ServiceLocator.BeginLifetimeScope()) { using (new DatabaseSwitcher(Sitecore.Data.Database.GetDatabase("master"))) { IArticleSearch articleSearch = scope.Resolve <IArticleSearch>(); IArticleSearchFilter filter = articleSearch.CreateFilter(); filter.ArticleNumbers = articleNumbers; var results = articleSearch.Search(filter); var articlesByArticleNumber = results.Articles.ToList(); return(articlesByArticleNumber); } } }
private string BuildReplaceSidebarArticles(string articleNumber) { IArticleSearchFilter filter = _dependencies.ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); var results = _dependencies.ArticleSearch.Search(filter); var replace = new HtmlString(""); var article = results.Articles?.FirstOrDefault(); if (article != null) { replace = BuildSideArticleHtml(article); } return(replace.ToHtmlString()); }
public ArticleItem GetArticleByNumber(string articleNumber, string databaseName) { IArticleSearchFilter filter = _articleSearcher.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); var results = _articleSearcher.SearchCustomDatabase(filter, databaseName); if (results.Articles.Any()) { var foundArticle = results.Articles.FirstOrDefault(); var service = SitecoreFactory(databaseName); if (foundArticle != null) { return(service.GetItem <ArticleItem>(foundArticle._Id)); } } return(null); }
public static List <IArticle> SearchArticlesByAuthorName(string authorName) { using (var scope = AutofacConfig.ServiceLocator.BeginLifetimeScope()) { using (new DatabaseSwitcher(Sitecore.Data.Database.GetDatabase("master"))) { IArticleSearch articleSearch = scope.Resolve <IArticleSearch>(); IArticleSearchFilter filter = articleSearch.CreateFilter(); filter.AuthorGuids.Add(authorName); var results = articleSearch.SearchArticleByAuthorName(filter); if (results != null) { var articlesByAuthorName = results.Articles.ToList(); return(articlesByAuthorName); } return(null); } } }
private string BuildReplaceSidebarArticles(string articleNumber, string partialName) { HtmlString replace = new HtmlString(""); IArticleSearchFilter filter = _.ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); var results = _.ArticleSearch.Search(filter); if (results.Articles.Any()) { var article = results.Articles.FirstOrDefault(); if (article != null) { replace = HtmlHelper.Partial(partialName, _.ArticleListableFactory.Create(article)); } } return(replace.ToHtmlString()); }
public string BuildReplaceRelatedArticles(string articleNumber) { HtmlString replace = new HtmlString(""); IArticleSearchFilter filter = _.ArticleSearch.CreateFilter(); filter.ArticleNumbers = articleNumber.SingleToList(); var results = _.ArticleSearch.Search(filter); if (results.Articles.Any()) { var article = results.Articles.FirstOrDefault(); if (article != null) { var articleText = $" (Also see \"<a href='{article._Url}'>{WebUtility.HtmlDecode(article.Title)}</a>\" - {_.GlobalService.GetPublicationName(article._Id)}, {(article.Actual_Publish_Date > DateTime.MinValue ? article.Actual_Publish_Date.ToString("d MMM, yyyy") : "")}.)"; replace = new HtmlString(articleText); } } return(replace.ToHtmlString()); }
public IArticleSearchResults SearchArticleByAuthorName(IArticleSearchFilter filter) { using (var context = SearchContextFactory.Create()) { var query = context.GetQueryable <ArticleSearchResultItem>() .Filter(i => i.TemplateId == IArticleConstants.TemplateId) .FilterByAuthor(filter) .ApplyDefaultFilters(); if (filter.PageSize > 0) { query = query.Page(filter.Page > 0 ? filter.Page - 1 : 0, filter.PageSize); } query = query.OrderByDescending(i => i.ActualPublishDate); var results = query.GetResults(); return(new ArticleSearchResults { Articles = results.Hits.Select(h => GlobalService.GetItem <IArticle>(h.Document.ItemId.Guid)) }); } }
public ArticleItem GetArticleByNumber(string number) { using (var serviceScope = _.ServiceFactory(Constants.MasterDb)) { using (var searchScope = _.SearchFactory()) { var service = serviceScope.Value; var search = searchScope.Value; IArticleSearchFilter filter = search.CreateFilter(); filter.ArticleNumbers = number.SingleToList(); var results = search.SearchCustomDatabase(filter, Constants.MasterDb); if (results.Articles.Any()) { var foundArticle = results.Articles.FirstOrDefault(); if (foundArticle != null) { return(service.GetItem <ArticleItem>(foundArticle._Id)); } } return(null); } } }