예제 #1
0
 void IContentStorageFilter.Indexed(IndexContentContext context)
 {
     if (context.ContentItem.Is <TPart>())
     {
         Indexed(context, context.ContentItem.As <TPart>());
     }
 }
        public void Index(ContentItem contentItem, IDocumentIndex documentIndex) {
            var indexContentContext = new IndexContentContext(contentItem, documentIndex);

            // dispatch to handlers to retrieve index information
            Handlers.Invoke(handler => handler.Indexing(indexContentContext), Logger);

            Handlers.Invoke(handler => handler.Indexed(indexContentContext), Logger);
        }
        private void IndexLayout(IndexContentContext context, LayoutPart part)
        {
            var layoutShape = _contentPartDisplay.BuildDisplay(part);
            var layoutHtml  = _shapeDisplay.Display(layoutShape);

            context.DocumentIndex
            .Add("body", layoutHtml).RemoveTags().Analyze()
            .Add("format", "html").Store();
        }
예제 #4
0
        private void UpdateIndex(IndexContentContext context, TicketPart part)
        {
            Func <IBasicDataRecord, string> getValue = (c) => c != null?c.Id.ToString(CultureInfo.InvariantCulture) : string.Empty;

            // service
            string service = getValue(part.Record.Service);

            string type = getValue(part.Record.TicketType);

            // identity
            string identity = part.Record.Identity != null?part.Record.Identity.Id.ToString(CultureInfo.InvariantCulture) : TicketPart.NullValueForIntegers;

            context.DocumentIndex
            .Add(TicketPart.TitleFieldName, part.Record.Title).Analyze().Store()
            .Add(TicketPart.TypeFieldName, type).Store()
            .Add(TicketPart.ServiceFieldName, service).Store()
            .Add(TicketPart.IdentityFieldName, identity).Store()
            .Add("type", "ticket").Store()
            .Add(TicketPart.DescriptionFieldName, part.Record.Description).Analyze().Store();

            // Priority
            if (part.Record.PriorityRecord != null)
            {
                context.DocumentIndex.Add(TicketPart.PriorityFieldName, part.PriorityRecord.Id.ToString(CultureInfo.InvariantCulture)).Store();
                var priorityRecord = basicDataService.GetPriorities().FirstOrDefault(c => c.Id == part.PriorityRecord.Id);

                if (priorityRecord != null)
                {
                    context.DocumentIndex.Add(TicketPart.PriorityOrderFieldName, priorityRecord.OrderId.ToString(CultureInfo.InvariantCulture)).Store();
                }
            }
            else
            {
                context.DocumentIndex.Add(TicketPart.PriorityFieldName, TicketPart.NullValueForIntegers).Store();
                context.DocumentIndex.Add(TicketPart.PriorityOrderFieldName, TicketPart.NullValueForIntegers).Store();
            }

            // status
            if (part.Record.StatusRecord != null)
            {
                context.DocumentIndex.Add(TicketPart.StatusFieldName, part.StatusRecord.Id.ToString(CultureInfo.InvariantCulture)).Store();
                var statusRecord = basicDataService.GetStatusRecords().FirstOrDefault(c => c.Id == part.StatusRecord.Id);

                if (statusRecord != null)
                {
                    context.DocumentIndex.Add(TicketPart.StatusOrderFieldName, statusRecord.OrderId.ToString(CultureInfo.InvariantCulture)).Store();
                }
            }
            else
            {
                context.DocumentIndex.Add(TicketPart.StatusFieldName, TicketPart.NullValueForIntegers).Store();
                context.DocumentIndex.Add(TicketPart.StatusOrderFieldName, TicketPart.NullValueForIntegers).Store();
            }

            // DueDate
            if (part.Record.DueDate != null)
            {
                context.DocumentIndex.Add(TicketPart.DueDateFieldName, part.Record.DueDate.Value).Store();
            }

            // requesting User
            if (part.Record.RequestingUser != null)
            {
                context.DocumentIndex.Add(TicketPart.RequestingUserFieldName, part.Record.RequestingUser.Id.ToString(CultureInfo.InvariantCulture)).Store();
            }
            else
            {
                context.DocumentIndex.Add(TicketPart.RequestingUserFieldName, string.Empty).Store();
            }

            // RelatedContentItem
            if (part.Record.RelatedContentItem != null)
            {
                context.DocumentIndex.Add(TicketPart.RelatedContentItemIdFieldName, part.Record.RelatedContentItem.Id.ToString(CultureInfo.InvariantCulture)).Store();
            }
            else
            {
                context.DocumentIndex.Add(TicketPart.RelatedContentItemIdFieldName, string.Empty).Store();
            }
        }
 public virtual void Indexed(IndexContentContext context) {}
예제 #6
0
 protected virtual void Indexed(IndexContentContext context, TPart instance)
 {
 }
예제 #7
0
 public void Indexed(IndexContentContext context)
 {
 }
예제 #8
0
 public void Indexing(IndexContentContext context)
 {
 }
 public virtual void Indexed(IndexContentContext context)
 {
 }
 protected override void Indexing(IndexContentContext context)
 {
     context.DocumentIndex.Add("displayUrl", _urlHelper.ItemDisplayUrl(context.ContentItem));
 }