private static List <BreadCrumbItem> GetBreadcrumb(UnifiedSearchHit hit) { if (hit.OriginalObjectType.Name == "WebContent") { return(new List <BreadCrumbItem>()); } var original = hit.OriginalObjectGetter?.Invoke() as BasePageType; var bcs = GetBreadCrumbItems(original, true); return(bcs); }
private string ModifyUrl(UnifiedSearchHit hit) { if (hit.HitTypeName == "page") { var original = hit.OriginalObjectGetter?.Invoke() as BasePageType; var repo = ServiceLocator.Current.GetInstance <IContentRepository>(); var parent = repo.Get <IContent>(original.ParentLink); if (parent.GetType().BaseType == typeof(ListPageType) && ((ListPageType)parent).ListType.ToLower() == "faq") { var returnurl = UrlResolver.Current.GetUrl(parent.ContentLink); var lasturlfragment = hit.Url.Split('/'); returnurl += "#faq:" + lasturlfragment[lasturlfragment.Length - 3]; return(returnurl); } } return(hit.Url); }
private static string ModifyExcerpt(UnifiedSearchHit hit) { var decoded = (HttpUtility.HtmlDecode(hit.Excerpt)); //fixes html in excerpt if broken HtmlDocument doc = new HtmlDocument(); MemoryStream myStream = new MemoryStream(System.Text.Encoding.Default.GetBytes(decoded)); doc.Load(myStream); var outHtml = doc.DocumentNode.OuterHtml; if (outHtml == "") { outHtml = "Beskrivning saknas"; } else { if (outHtml.EndsWith(".")) { outHtml += ".."; } else { outHtml += "..."; } } var original = hit.OriginalObjectGetter?.Invoke() as BasePageType; if (hit.HitTypeName == "page") { var repo = ServiceLocator.Current.GetInstance <IContentRepository>(); var parent = repo.Get <IContent>(original.ParentLink); if (((PageData)parent).Name.ToLower() == "nyheter" || ((PageData)parent).Name.ToLower() == "pressmeddelanden") { outHtml = "<span class='searchhitdate'>[ " + original.StartPublish.ToString("yyyy-MM-dd") + " ]</span> " + outHtml; } } return(outHtml); }
private List <List <BreadCrumbItem> > GetPageBreadcrumbs(UnifiedSearchHit hit) { try { if (hit.MetaData != null && !hit.MetaData.ContainsKey("contentid_list")) { return(new List <List <BreadCrumbItem> >()); } var contentIdList = hit.MetaData["contentid_list"]; if (contentIdList == null) { return(new List <List <BreadCrumbItem> >()); } var listOfIds = JsonConvert.DeserializeObject <List <int> >(contentIdList.StringValue); if (listOfIds == null) { return(new List <List <BreadCrumbItem> >()); } var tempbreadcrumblist = listOfIds.Select(x => GetBreadCrumbItems(x, searchroot, true)).Distinct().ToList(); List <List <BreadCrumbItem> > breadcrumbs = new List <List <BreadCrumbItem> >(); foreach (var bc in tempbreadcrumblist) { if (bc.Count > 0) { breadcrumbs.Add(bc); } } return(breadcrumbs); } catch (NullReferenceException e) { return(new EditableList <List <BreadCrumbItem> >()); } }
private CommonSearchHit GetCommonSearchHit(UnifiedSearchHit hit) { string outHtml = ModifyExcerpt(hit); string url = ModifyUrl(hit); var pagebreadcrumbs = GetPageBreadcrumbs(hit); return(new CommonSearchHit { Id = GetId(hit), HitTypeName = GetHittypename(hit), IsBestBet = hit.IsBestBet(), HasBestBetStyle = hit.HasBestBetStyle(), Excerpt = HttpUtility.HtmlDecode(outHtml), PublishDate = hit.PublishDate, UpdateDate = hit.UpdateDate, Title = HttpUtility.HtmlDecode(hit.Title), Url = url, Breadcrumb = GetBreadcrumb(hit), MetaData = hit.MetaData, PageBreadcrumbs = pagebreadcrumbs, FileExtension = hit.FileExtension, OriginalObjectType = hit.OriginalObjectType }); }
private static MyHit GetHit(UnifiedSearchHit hit) { var sHit = new MyHit { Id = GetId(hit.OriginalObjectGetter), UpdateDate = hit.UpdateDate, Title = FixHtml(hit.Title), Excerpt = FixHtml(hit.Excerpt), Section = hit.Section, Subsection = hit.Subsection, MetaData = hit.MetaData, Url = hit.Url, Authors = hit.Authors, FileExtension = hit.FileExtension, Filename = hit.Filename, GeoLocation = hit.GeoLocation, HitTypeName = hit.HitTypeName, ImageUri = hit.ImageUri, OriginalObjectGetter = hit.OriginalObjectGetter, OriginalObjectType = hit.OriginalObjectType, PublishDate = hit.PublishDate, TypeName = hit.TypeName, Breadcrumb = GetBreadcrumb(hit.OriginalObjectGetter), IsBestBet = hit.IsBestBet() }; return sHit; }
private string GetHittypename(UnifiedSearchHit hit) { return(hit.OriginalObjectType.Name == "WebContent" ? "webcontent" : hit.HitTypeName); }
private string GetId(UnifiedSearchHit hit) { return(hit.GetIdentity()?.ExternalId.ToString() ?? Guid.NewGuid().ToString()); }
private ErrorLogEntry ReadError(UnifiedSearchHit hit) { var file = HostingEnvironment.VirtualPathProvider.GetFile(hit.Path) as UnifiedFile; return ReadError(file); }