public override async Task BuildIndexAsync(BagPart bagPart, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions();

            if (options == DocumentIndexOptions.None)
            {
                return;
            }

            if (bagPart.ContentItems.Count != 0)
            {
                // Lazy resolution to prevent cyclic dependency
                var contentItemIndexHandlers = _serviceProvider.GetServices <IContentItemIndexHandler>();

                foreach (var contentItemIndexHandler in contentItemIndexHandlers)
                {
                    foreach (var contentItem in bagPart.ContentItems)
                    {
                        var keys = new List <string>();
                        keys.Add(contentItem.ContentType);
                        foreach (var key in context.Keys)
                        {
                            keys.Add($"{key}.{contentItem.ContentType}");
                        }

                        var buildIndexContext = new BuildIndexContext(context.DocumentIndex, contentItem, keys);

                        await contentItemIndexHandler.BuildIndexAsync(buildIndexContext);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public override Task BuildIndexAsync(AliasPart part, BuildPartIndexContext context)
        {
            var options = DocumentIndexOptions.Store;

            context.DocumentIndex.Entries.Add(context.Key, new DocumentIndex.DocumentIndexEntry(part.Alias, DocumentIndex.Types.Text, options));

            return(Task.CompletedTask);
        }
Ejemplo n.º 3
0
        public override Task BuildIndexAsync(TitlePart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions()
                          | DocumentIndexOptions.Analyze
            ;

            context.DocumentIndex.Entries.Add(context.Key, new DocumentIndex.DocumentIndexEntry(part.Title, DocumentIndex.Types.Text, options));

            return(Task.CompletedTask);
        }
        public override Task BuildIndexAsync(ContentPermissionsPart part, BuildPartIndexContext context)
        {
            context.DocumentIndex.Set($"{nameof(ContentPermissionsPart)}.{nameof(ContentPermissionsPart.Enabled)}", part.Enabled, DocumentIndexOptions.Store);

            foreach (var role in part.Roles)
            {
                context.DocumentIndex.Set($"{nameof(ContentPermissionsPart)}.{nameof(ContentPermissionsPart.Roles)}", role, DocumentIndexOptions.Store);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 5
0
        public override Task BuildIndexAsync(TagsPart part, BuildPartIndexContext context)
        {
            var options = DocumentIndexOptions.Store;

            foreach (var key in context.Keys)
            {
                context.DocumentIndex.Set(key, part.Tags, options);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 6
0
        public override Task BuildIndexAsync(PartyPart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions() | DocumentIndexOptions.Analyze;

            foreach (var key in context.Keys)
            {
                context.DocumentIndex.Set(key, part.FullName, options);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 7
0
        public override Task BuildIndexAsync(LocalizationPart part, BuildPartIndexContext context)
        {
            var options = DocumentIndexOptions.Store;

            foreach (var key in context.Keys)
            {
                context.DocumentIndex.Set(key + ".LocalizationSet", part.LocalizationSet, options);
                context.DocumentIndex.Set(key + ".Culture", part.Culture?.ToLowerInvariant(), options);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 8
0
        public override Task BuildIndexAsync(AutoroutePart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions()
                          & ~DocumentIndexOptions.Sanitize
                          & ~DocumentIndexOptions.Analyze
            ;

            foreach (var key in context.Keys)
            {
                context.DocumentIndex.Set(key, part.Path, options);
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 9
0
        public override Task BuildIndexAsync(LeverPostingPart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions()
                          | DocumentIndexOptions.Analyze | DocumentIndexOptions.Store
            ;

            var posting = JsonConvert.DeserializeObject <Posting>(part.Data);

            context.DocumentIndex.Set($"{nameof(LeverPostingPart)}.Text", posting.Text, options);
            context.DocumentIndex.Set($"{nameof(LeverPostingPart)}.Team", posting.Categories.Team, DocumentIndexOptions.Store);
            context.DocumentIndex.Set($"{nameof(LeverPostingPart)}.Location", posting.Categories.Location, DocumentIndexOptions.Store);
            context.DocumentIndex.Set($"{nameof(LeverPostingPart)}.Commitment", posting.Categories.Commitment, DocumentIndexOptions.Store);

            return(Task.CompletedTask);
        }
Ejemplo n.º 10
0
        public override Task BuildIndexAsync(SearchablePart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions()
                          | DocumentIndexOptions.Analyze
            ;

            context.DocumentIndex.Set("SearchablePart.Keywords", part.Keywords, options);

            context.DocumentIndex.Entries.Add(
                new DocumentIndex.DocumentIndexEntry(
                    "SearchablePart.ExcludeFromResults",
                    part.ExcludeFromResults,
                    DocumentIndex.Types.Boolean,
                    DocumentIndexOptions.Store
                    )
                );

            return(Task.CompletedTask);
        }
Ejemplo n.º 11
0
        public override async Task BuildIndexAsync(AutoroutePart part, BuildPartIndexContext context)
        {
            var options = context.Settings.ToOptions()
                          & ~DocumentIndexOptions.Sanitize
                          & ~DocumentIndexOptions.Analyze
            ;

            var metadataitem = await _contentManager.PopulateAspectAsync <ContentItemMetadata>(part.ContentItem);

            string itemDisplayUrl = _urlHelper.Action(metadataitem.DisplayRouteValues["action"].ToString(), metadataitem.DisplayRouteValues);

            context.DocumentIndex.Set("displayUrl", itemDisplayUrl, options);

//            foreach (var key in context.Keys)
//            {
//                context.DocumentIndex.Set(key, part.Path, options);
//            }

            //  return Task.CompletedTask;
        }