Exemple #1
0
        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);
        }
Exemple #2
0
 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);
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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> >());
            }
        }
Exemple #5
0
        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
            });
        }
Exemple #6
0
 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;
 }
Exemple #7
0
 private string GetHittypename(UnifiedSearchHit hit)
 {
     return(hit.OriginalObjectType.Name == "WebContent" ? "webcontent" : hit.HitTypeName);
 }
Exemple #8
0
 private string GetId(UnifiedSearchHit hit)
 {
     return(hit.GetIdentity()?.ExternalId.ToString() ?? Guid.NewGuid().ToString());
 }
Exemple #9
0
        private ErrorLogEntry ReadError(UnifiedSearchHit hit)
        {
            var file = HostingEnvironment.VirtualPathProvider.GetFile(hit.Path) as UnifiedFile;

            return ReadError(file);
        }