private void InitializerTermsLoader(TermsPart part) {
            if (part._termParts != null) {
                return;
            }

            var queryHint = new QueryHints()
                .ExpandRecords("ContentTypeRecord", "CommonPartRecord", "TermsPartRecord");


            foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType<TaxonomyField>()) {
                var tempField = field.Name;
                field.TermsField.Loader(() => {
                    var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
                    var terms = _contentManager.GetMany<TermPart>(fieldTermRecordIds, VersionOptions.Published, queryHint);
                    return terms.ToList();
                });
            }

            part._termParts = new LazyField<IEnumerable<TermContentItemPart>>();
            part._termParts.Loader(() => {
                var ids = part.Terms.Select(t => t.TermRecord.Id).Distinct();
                var terms = _contentManager.GetMany<TermPart>(ids, VersionOptions.Published, queryHint)
                    .ToDictionary(t => t.Id, t => t);
                return
                    part.Terms.Select(
                        x =>
                            new TermContentItemPart {
                                Field = x.Field,
                                TermPart = terms[x.TermRecord.Id]
                            }
                        );
            });
        }
Beispiel #2
0
 private static void RecalculateCount(ITaxonomyService taxonomyService, TermsPart part)
 {
     foreach (var term in part.Terms)
     {
         var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
         term.TermRecord.Count = (int)taxonomyService.GetContentItemsCount(termPart);
     }
 }
Beispiel #3
0
        private static void RecalculateCount(IContentManager contentManager, ITaxonomyService taxonomyService, TermsPart part) {
            // submits any change to the db so that GetContentItemsCount is accurate
            contentManager.Flush();

            foreach (var term in part.Terms) {
                var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
                term.TermRecord.Count = (int)taxonomyService.GetContentItemsCount(termPart);
            }
        }
Beispiel #4
0
        private void InitializerTermsLoader(TermsPart part) {
                foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType<TaxonomyField>()) {
                    var tempField = field.Name;
                    var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
                    field.TermsField.Loader(value => fieldTermRecordIds.Select(id => _contentManager.Get<TermPart>(id)).ToList());
                }

                part._termParts.Loader(value => 
                    part.Terms.Select(
                        x => new TermContentItemPart { Field = x.Field, TermPart = _contentManager.Get<TermPart>(x.TermRecord.Id) }
                        ));
        }
Beispiel #5
0
        // Retrieve the number of associated content items, for the whole hierarchy
        private static void RecalculateCount(ITaxonomyService taxonomyService, TermsPart part) {
            foreach (var term in part.Terms) {
                var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
                while (termPart != null) {
                    termPart.Count = (int)taxonomyService.GetContentItemsCount(termPart);

                    // compute count for the hierarchy too
                    if (termPart.Container != null) {
                        var parentTerm = termPart.Container.As<TermPart>();
                        termPart = parentTerm;
                    }
                }
            }
        }
Beispiel #6
0
        private void InitializerTermsLoader(TermsPart part)
        {
            foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType <TaxonomyField>())
            {
                var tempField          = field.Name;
                var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
                field.TermsField.Loader(value => fieldTermRecordIds.Select(id => _contentManager.Get <TermPart>(id)).ToList());
            }

            part._termParts.Loader(value =>
                                   part.Terms.Select(
                                       x => new TermContentItemPart {
                Field = x.Field, TermPart = _contentManager.Get <TermPart>(x.TermRecord.Id)
            }
                                       ));
        }
Beispiel #7
0
        // Retrieve the number of associated content items, for the whole hierarchy
        private static void RecalculateCount(ITaxonomyService taxonomyService, TermsPart part)
        {
            foreach (var term in part.Terms)
            {
                var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
                while (termPart != null)
                {
                    termPart.Count = (int)taxonomyService.GetContentItemsCount(termPart);

                    // compute count for the hierarchy too
                    if (termPart.Container != null)
                    {
                        var parentTerm = termPart.Container.As <TermPart>();
                        termPart = parentTerm;
                    }
                }
            }
        }
        private void InitializerTermsLoader(TermsPart part)
        {
            if (part._termParts != null)
            {
                return;
            }

            var queryHint = new QueryHints()
                            .ExpandRecords("ContentTypeRecord", "CommonPartRecord", "TermsPartRecord");


            foreach (var field in part.ContentItem.Parts.SelectMany(p => p.Fields).OfType <TaxonomyField>())
            {
                var tempField = field.Name;
                field.TermsField.Loader(() => {
                    var fieldTermRecordIds = part.Record.Terms.Where(t => t.Field == tempField).Select(tci => tci.TermRecord.Id);
                    var terms = _contentManager.GetMany <TermPart>(fieldTermRecordIds, VersionOptions.Published, queryHint);
                    return(terms.ToList());
                });
            }

            part._termParts = new LazyField <IEnumerable <TermContentItemPart> >();
            part._termParts.Loader(() => {
                var ids   = part.Terms.Select(t => t.TermRecord.Id).Distinct();
                var terms = _contentManager.GetMany <TermPart>(ids, VersionOptions.Published, queryHint)
                            .ToDictionary(t => t.Id, t => t);
                return
                (part.Terms.Select(
                     x =>
                     new TermContentItemPart {
                    Field = x.Field,
                    TermPart = terms[x.TermRecord.Id]
                }
                     ));
            });
        }
        // Fires off a processing engine task to run the count processing after the request so it's non-blocking.
        private void RecalculateCount(IProcessingEngine processingEngine, ShellSettings shellSettings, IShellDescriptorManager shellDescriptorManager, TermsPart part) {
            var termPartRecordIds = part.Terms.Select(t => t.TermRecord.Id).ToArray();
            processingEngine.AddTask(shellSettings, shellDescriptorManager.GetShellDescriptor(), "ITermCountProcessor.Process", new Dictionary<string, object> { { "termPartRecordIds", termPartRecordIds } });

        }
        // Fires off a processing engine task to run the count processing after the request so it's non-blocking.
        private void RecalculateCount(IProcessingEngine processingEngine, ShellSettings shellSettings, IShellDescriptorManager shellDescriptorManager, TermsPart part)
        {
            var termPartRecordIds = part.Terms.Select(t => t.TermRecord.Id).ToArray();

            if (termPartRecordIds.Any())
            {
                if (!_processedTermParts.Any())
                {
                    processingEngine.AddTask(shellSettings, shellDescriptorManager.GetShellDescriptor(), "ITermCountProcessor.Process", new Dictionary <string, object> {
                        { "termPartRecordIds", _processedTermParts }
                    });
                }
                foreach (var termPartRecordId in termPartRecordIds)
                {
                    _processedTermParts.Add(termPartRecordId);
                }
            }
        }
Beispiel #11
0
        // Fires off a processing engine task to run the count processing after the request so it's non-blocking.
        private void RecalculateCount(IProcessingEngine processingEngine, ShellSettings shellSettings, IShellDescriptorManager shellDescriptorManager, TermsPart part)
        {
            var termPartRecordIds = part.Terms.Select(t => t.TermRecord.Id).ToArray();

            processingEngine.AddTask(shellSettings, shellDescriptorManager.GetShellDescriptor(), "ITermCountProcessor.Process", new Dictionary <string, object> {
                { "termPartRecordIds", termPartRecordIds }
            });
        }
 private static void RecalculateCount(ITaxonomyService taxonomyService, TermsPart part) {
     foreach (var term in part.Terms) {
         var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
         term.TermRecord.Count = (int)taxonomyService.GetContentItemsCount(termPart);
     }
 }
        private static void RecalculateCount(IContentManager contentManager, ITaxonomyService taxonomyService, TermsPart part)
        {
            // submits any change to the db so that GetContentItemsCount is accurate
            contentManager.Flush();

            foreach (var term in part.Terms)
            {
                var termPart = taxonomyService.GetTerm(term.TermRecord.Id);
                term.TermRecord.Count = (int)taxonomyService.GetContentItemsCount(termPart);
            }
        }
Beispiel #14
0
         // Fires off a processing engine task to run the count processing after the request so it's non-blocking.
 private void RecalculateCount(IProcessingEngine processingEngine, ShellSettings shellSettings, IShellDescriptorManager shellDescriptorManager, TermsPart part) {
     var termPartRecordIds = part.Terms.Select(t => t.TermRecord.Id).ToArray();
     if (termPartRecordIds.Any()) {
         if (!_processedTermParts.Any()) {
             processingEngine.AddTask(shellSettings, shellDescriptorManager.GetShellDescriptor(), "ITermCountProcessor.Process", new Dictionary<string, object> { { "termPartRecordIds", _processedTermParts } });
         }
         foreach (var termPartRecordId in termPartRecordIds) {
             _processedTermParts.Add(termPartRecordId);                    
         }
     }
 }
 private bool IsTermGraphBuildingEnabled(TermsPart part)
 {
     var settings = part.ContentItem.TypeDefinition.Settings.GetModel<AssociativyTaxonomiesAdapterTypeSettings>();
     return settings != null && settings.GraphNames.Any();
 }