コード例 #1
0
        public TermPart CreateChildTermFor(TaxonomyPart taxonomy, TermPart parent, string termName, string termSlug)
        {
            var existingTerm = _taxonomyService.GetTermByName(taxonomy.Id, termName);

            if (existingTerm != null)
            {
                return(existingTerm);
            }

            var term = _taxonomyService.NewTerm(taxonomy, parent);

            _contentManager.Create(term, VersionOptions.Draft);

            term.Weight = 0;
            term.Name   = termName.Trim();

            if (!string.IsNullOrEmpty(termSlug) || !string.IsNullOrWhiteSpace(termSlug))
            {
                term.Slug = termSlug.Trim();
            }

            _contentManager.Publish(term.ContentItem);

            return(term);
        }
コード例 #2
0
        private void CreateTerm(TaxonomyPart taxonomyPart, string name)
        {
            var term = _taxonomyService.NewTerm(taxonomyPart);

            term.Name = name;
            _contentManager.Create(term, VersionOptions.Published);
        }
コード例 #3
0
 private static TaxonomyEntry CreateTaxonomyEntry(TaxonomyPart taxonomy)
 {
     return(new TaxonomyEntry {
         Taxonomy = taxonomy,
         IsChecked = false,
     });
 }
コード例 #4
0
        public TermPart NewTerm(TaxonomyPart taxonomy, IContent parent)
        {
            if (taxonomy == null)
            {
                throw new ArgumentNullException("taxonomy");
            }

            if (parent != null)
            {
                var parentAsTaxonomy = parent.As <TaxonomyPart>();
                if (parentAsTaxonomy != null && parentAsTaxonomy != taxonomy)
                {
                    throw new ArgumentException("The parent of a term can't be a different taxonomy", "parent");
                }

                var parentAsTerm = parent.As <TermPart>();
                if (parentAsTerm != null && parentAsTerm.TaxonomyId != taxonomy.Id)
                {
                    throw new ArgumentException("The parent of a term can't be a from a different taxonomy", "parent");
                }
            }

            var term = _contentManager.New <TermPart>(taxonomy.TermTypeName);

            term.Container  = parent ?? taxonomy;
            term.TaxonomyId = taxonomy.Id;
            ProcessPath(term);

            return(term);
        }
        public async Task <TaxonomyValidationResult> Validate(TaxonomyPart part)
        {
            if (part.TermContentType != ContentTypes.PageLocation)
            {
                return(new TaxonomyValidationResult(true, null));
            }

            List <string> errors = new List <string>();

            //make sure nothing has moved that has associated pages anywhere down the tree
            List <ContentItem> allPages = await _contentItemsService.GetActive(ContentTypes.Page);

            JArray?terms = _taxonomyHelper.GetAllTerms(JObject.FromObject(part.ContentItem));

            if (terms != null)
            {
                foreach (JObject term in terms)
                {
                    dynamic?originalParent = _taxonomyHelper.FindParentTaxonomyTerm(term, JObject.FromObject(part.ContentItem));
                    dynamic?newParent      = _taxonomyHelper.FindParentTaxonomyTerm(term, JObject.FromObject(part));

                    if (originalParent == null || newParent == null)
                    {
                        throw new InvalidOperationException($"Could not find {(originalParent == null ? "original" : "new")} parent taxonomy term for {term}");
                    }

                    if (newParent?.ContentItemId != null && newParent?.ContentItemId != originalParent?.ContentItemId)
                    {
                        //find all child terms down the taxonomy tree
                        var childTermsFromTree = _taxonomyHelper.GetAllTerms(term);

                        if (allPages.Any(x => (string)x.Content.Page.PageLocations.TermContentItemIds[0] == (string)term["ContentItemId"] ! || childTermsFromTree.Any(t => (string)t["ContentItemId"] ! == (string)x.Content.Page.PageLocations.TermContentItemIds[0])))
                        {
                            errors.Add("You cannot move a Page Location which has associated Pages linked to it, or any of its children.");
                        }

                        foreach (var validator in _validators)
                        {
                            (bool validated, string errorMessage) =
                                await validator.ValidateUpdate(term, JObject.FromObject(part));

                            if (!validated)
                            {
                                errors.Add(errorMessage);
                            }
                        }

                        //make sure display text doesn't clash with any other term at this level
                        JArray parentTerms = _taxonomyHelper.GetTerms(JObject.FromObject(newParent));
                        if (parentTerms?.Any(x => (string)x["ContentItemId"] ! != (string)term["ContentItemId"] ! && (string)x["DisplayText"] ! == (string)term["DisplayText"] !) ?? false)
                        {
                            errors.Add("Terms at the same hierarchical position must have unique titles.");
                        }
                    }
                }
            }

            return(new TaxonomyValidationResult(!errors.Any(), errors));
        }
コード例 #6
0
ファイル: Migrations.cs プロジェクト: YSRE/SuperRocket
        private void CreateTerm(TaxonomyPart tax, string termName)
        {
            var term = _taxonomyService.NewTerm(tax);

            term.Name       = termName;
            term.Selectable = true;
            _contentManager.Create(term, VersionOptions.Published);
        }
コード例 #7
0
        private ContentPart CreateTaxonomyPart(TaxonomyPartDto taxonomyPartDto)
        {
            var taxonomyPart = new TaxonomyPart();

            taxonomyPart.Terms = CreateTaxonomyItems(taxonomyPartDto.Terms);

            return(taxonomyPart);
        }
コード例 #8
0
ファイル: TaxonomyService.cs プロジェクト: vard0/orchard.tan
        public TermPart NewTerm(TaxonomyPart taxonomy)
        {
            var term = _contentManager.New <TermPart>(taxonomy.TermTypeName);

            term.TaxonomyId = taxonomy.Id;

            return(term);
        }
コード例 #9
0
 public void CreateLocalizedTermContentType(TaxonomyPart taxonomy)
 {
     _taxonomyService.CreateTermContentType(taxonomy);
     _contentDefinitionManager.AlterTypeDefinition(taxonomy.TermTypeName,
                                                   cfg => cfg
                                                   .WithPart("LocalizationPart")
                                                   );
 }
コード例 #10
0
 public void EditTaxonomy(TaxonomyPart taxonomy, string oldName)
 {
     // rename term definition
     _contentDefinitionManager.AlterTypeDefinition(taxonomy.TermTypeName,
                                                   cfg => cfg
                                                   .WithSetting("Taxonomy", taxonomy.Name)
                                                   .DisplayedAs(taxonomy.Name + " Term")
                                                   );
 }
コード例 #11
0
 private static TaxonomyEntry CreateTaxonomyEntry(TaxonomyPart taxonomy)
 {
     return(new TaxonomyEntry {
         Id = taxonomy.Id,
         Name = taxonomy.Name,
         IsInternal = taxonomy.IsInternal,
         ContentItem = taxonomy.ContentItem,
         IsChecked = false,
     });
 }
コード例 #12
0
        public TermPart CreateTermFor(TaxonomyPart taxonomy, string termName, string termSlug)
        {
            var existingTerm = _taxonomyService.GetTermByName(taxonomy.Id, termName);

            if (existingTerm != null)
            {
                return(existingTerm);
            }

            return(CreateChildTermFor(taxonomy, null, termName, termSlug));
        }
コード例 #13
0
        public RegisteredPackageIdGetter(IUserkeyPackageService userkeyPackageService, IPackageService packageService, IOrchardServices orchardServices,
            IUserkeyService userkeyService, IGalleryPackageService galleryPackageService, ITaxonomyService taxonomyService) {
            _userkeyPackageService = userkeyPackageService;
            _packageService = packageService;
            _orchardServices = orchardServices;
            _userkeyService = userkeyService;
            _galleryPackageService = galleryPackageService;
            _taxonomyService = taxonomyService;

            _taxonomy = _taxonomyService.GetTaxonomyBySlug("PackageTypes");
        }
コード例 #14
0
        public void DeleteTaxonomy(TaxonomyPart taxonomy)
        {
            _contentManager.Remove(taxonomy.ContentItem);

            // Removing terms
            foreach (var term in GetTerms(taxonomy.Id))
            {
                DeleteTerm(term);
            }

            _contentDefinitionManager.DeleteTypeDefinition(taxonomy.TermTypeName);
        }
コード例 #15
0
        private IEnumerable <TermPart> GetTaxonomyTerms(TaxonomyField tf)
        {
            IEnumerable <TermPart> result = null;
            var          taxoSettings     = tf.PartFieldDefinition.Settings;
            string       taxoName         = taxoSettings.Where(x => x.Key == "TaxonomyFieldSettings.Taxonomy").Select(x => x.Value).FirstOrDefault();
            TaxonomyPart taxoPart         = _taxonomyService.GetTaxonomyByName(taxoName);

            if (taxoPart != null)
            {
                result = taxoPart.Terms;
            }
            return(result);
        }
        private void ImportLocalizedTerms(PublishContentContext context, TaxonomyPart part)
        {
            // When saving a Taxonomy translation I automatically move to the taxonomy any term in the corresponding language associated to the other translations
            bool termsMoved = false;

            if (context.ContentItem.Has <LocalizationPart>())
            {
                var taxonomyCulture = context.ContentItem.As <LocalizationPart>().Culture;
                if (taxonomyCulture != null)
                {
                    var taxonomyIds = _localizationService.GetLocalizations(context.ContentItem).Select(x => x.Id);

                    foreach (var taxonomyId in taxonomyIds)
                    {
                        var parentTaxonomyCulture = _taxonomyService.GetTaxonomy(taxonomyId).As <LocalizationPart>().Culture;
                        var termIds = _taxonomyService.GetTerms(taxonomyId).Select(x => x.Id);

                        foreach (var termId in termIds)
                        {
                            var term       = _taxonomyService.GetTerm(termId);
                            var parentTerm = _taxonomyExtensionsService.GetParentTerm(term);
                            if (term.Has <LocalizationPart>())
                            {
                                var termCulture = term.As <LocalizationPart>().Culture;

                                if (termCulture != null && termCulture != parentTaxonomyCulture && termCulture == taxonomyCulture)
                                {
                                    term.TaxonomyId = context.ContentItem.Id;
                                    term.Path       = parentTerm != null?parentTerm.As <TermPart>().FullPath + "/" : "/";

                                    if (parentTerm == null)
                                    {
                                        term.Container = context.ContentItem;
                                    }

                                    _taxonomyExtensionsService.RegenerateAutoroute(term.ContentItem);

                                    termsMoved = true;
                                }
                            }
                        }
                    }
                }
            }

            if (termsMoved)
            {
                _notifier.Add(NotifyType.Information, T("Terms in the chosen language have been automatically moved from the other translations."));
            }
        }
コード例 #17
0
 private TreeNode GetTaxonomyNode(TaxonomyPart taxonomy)
 {
     return(new TreeNode {
         Title = taxonomy.Name,
         Type = "taxonomy",
         Id = taxonomy.Id.ToString(CultureInfo.InvariantCulture),
         Url = _url.Action(
             "Index", "TermAdmin",
             new RouteValueDictionary {
             { "area", "Contrib.Taxonomies" },
             { "taxonomyId", taxonomy.Id }
         })
     });
 }
コード例 #18
0
        public void DeleteTaxonomy(TaxonomyPart taxonomy)
        {
            _contentManager.Remove(taxonomy.ContentItem);

            // Removing terms
            foreach (var term in GetRootTerms(taxonomy.Id))
            {
                DeleteTerm(term);
            }

            if (_contentManager.Query <TaxonomyPart, TaxonomyPartRecord>().Where(x => x.Id != taxonomy.Id && x.TermTypeName == taxonomy.TermTypeName).Count() == 0)
            {
                _contentDefinitionManager.DeleteTypeDefinition(taxonomy.TermTypeName);
            }
        }
コード例 #19
0
        public TermPart CreateTermFor(TaxonomyPart taxonomy, string termName, string termSlug) {
            var term = _taxonomyService.NewTerm(taxonomy);

            term.Weight = 0;
            term.Container = taxonomy.ContentItem;
            term.Name = termName.Trim();

            if (!string.IsNullOrEmpty(termSlug) || !string.IsNullOrWhiteSpace(termSlug))
                term.Slug = termSlug.Trim();
            
            //TODO: Commented this one - not sure if it's necessary or not
            //_routableService.ProcessSlug(term.As<IRoutableAspect>());
            _taxonomyService.ProcessPath(term);
            _contentManager.Create(term, VersionOptions.Published);

            return term;
        }
コード例 #20
0
        public void CreateTermContentType(TaxonomyPart taxonomy)
        {
            // create the associated term's content type
            taxonomy.TermTypeName = GenerateTermTypeName(taxonomy.Name);

            _contentDefinitionManager.AlterTypeDefinition(taxonomy.TermTypeName,
                                                          cfg => cfg
                                                          .WithSetting("Taxonomy", taxonomy.Name)
                                                          .WithPart("TermPart")
                                                          .WithPart("TitlePart")
                                                          .WithPart("AutoroutePart", builder => builder
                                                                    .WithSetting("AutorouteSettings.AllowCustomPattern", "true")
                                                                    .WithSetting("AutorouteSettings.AutomaticAdjustmentOnEdit", "false")
                                                                    .WithSetting("AutorouteSettings.PatternDefinitions", "[{Name:'Taxonomy and Title', Pattern: '{Content.Container.Path}/{Content.Slug}', Description: 'my-taxonomy/my-term/sub-term'}]"))
                                                          .WithPart("CommonPart")
                                                          .DisplayedAs(taxonomy.Name + " Term")
                                                          );
        }
コード例 #21
0
ファイル: TaxonomyService.cs プロジェクト: wezmag/Coevery
        public void CreateTermContentType(TaxonomyPart taxonomy) {
            // create the associated term's content type
            taxonomy.TermTypeName = GenerateTermTypeName(taxonomy.Name);

            _contentDefinitionManager.AlterTypeDefinition(taxonomy.TermTypeName, 
                cfg => cfg
                    .WithSetting("Taxonomy", taxonomy.Name)
                    .WithPart("TermPart")
                    .WithPart("TitlePart")
                    .WithPart("AutoroutePart", builder => builder
                        .WithSetting("AutorouteSettings.AllowCustomPattern", "true")
                        .WithSetting("AutorouteSettings.AutomaticAdjustmentOnEdit", "false")
                        .WithSetting("AutorouteSettings.PatternDefinitions", "[{Name:'Taxonomy and Title', Pattern: '{Content.Container.Path}/{Content.Slug}', Description: 'my-taxonomy/my-term/sub-term'}]")
                        .WithSetting("AutorouteSettings.DefaultPatternIndex", "0"))
                    .WithPart("CommonPart")
                    .DisplayedAs(taxonomy.Name + " Term")
                );

        }
コード例 #22
0
        public void MoveTerm(TaxonomyPart taxonomy, TermPart term, TermPart parentTerm)
        {
            var children = GetChildren(term);

            term.Container = parentTerm == null ? taxonomy.ContentItem : parentTerm.ContentItem;
            ProcessPath(term);

            var contentItem = _contentManager.Get(term.ContentItem.Id, VersionOptions.DraftRequired);

            _contentManager.Publish(contentItem);

            foreach (var childTerm in children)
            {
                ProcessPath(childTerm);

                contentItem = _contentManager.Get(childTerm.ContentItem.Id, VersionOptions.DraftRequired);
                _contentManager.Publish(contentItem);
            }
        }
コード例 #23
0
        public TermPart CreateChildTermFor(TaxonomyPart taxonomy, TermPart parent, string termName, string termSlug)
        {
            var existingTerm = _taxonomyService.GetTermByName(taxonomy.Id, termName);

            if (existingTerm != null)
                return existingTerm;

            var term = _taxonomyService.NewTerm(taxonomy, parent);
            _contentManager.Create(term, VersionOptions.Draft);

            term.Weight = 0;
            term.Name = termName.Trim();

            if (!string.IsNullOrEmpty(termSlug) || !string.IsNullOrWhiteSpace(termSlug))
                term.Slug = termSlug.Trim();

            _contentManager.Publish(term.ContentItem);

            return term;
        }
コード例 #24
0
        public TermPart CreateTermFor(TaxonomyPart taxonomy, string termName, string termSlug)
        {
            var term = _taxonomyService.NewTerm(taxonomy);

            term.Weight    = 0;
            term.Container = taxonomy.ContentItem;
            term.Name      = termName.Trim();

            if (!string.IsNullOrEmpty(termSlug) || !string.IsNullOrWhiteSpace(termSlug))
            {
                term.Slug = termSlug.Trim();
            }

            //TODO: Commented this one - not sure if it's necessary or not
            //_routableService.ProcessSlug(term.As<IRoutableAspect>());
            _taxonomyService.ProcessPath(term);
            _contentManager.Create(term, VersionOptions.Published);

            return(term);
        }
コード例 #25
0
 private void CreateTerm(TaxonomyPart taxonomyPart, string name)
 {
     var term = _taxonomyService.NewTerm(taxonomyPart);
     term.Name = name;
     _contentManager.Create(term, VersionOptions.Published);
 }
コード例 #26
0
ファイル: Shapes.cs プロジェクト: emacslisp/OrchardBranched
        public void Discover(ShapeTableBuilder builder)
        {
            builder.Describe("Taxonomy")
            .OnDisplaying(displaying => {
                var shape             = displaying.Shape;
                var metadata          = displaying.ShapeMetadata;
                TaxonomyPart taxonomy = shape.ContentPart;
                shape.Classes.Add("taxonomy-" + taxonomy.Slug.HtmlClassify());
                shape.Classes.Add("taxonomy");
                metadata.Alternates.Add("Taxonomy__" + FormatAlternate(taxonomy.Slug));
            });

            builder.Describe("TaxonomyItem")
            .OnDisplaying(displaying => {
                var shape        = displaying.Shape;
                var metadata     = displaying.ShapeMetadata;
                IContent content = shape.Taxonomy;
                var taxonomy     = content.As <TaxonomyPart>();
                metadata.Alternates.Add("TaxonomyItem__" + FormatAlternate(taxonomy.Slug));

                TermPart term = shape.ContentPart;
                foreach (var alternate in GetHierarchyAlternates(term).Reverse())
                {
                    metadata.Alternates.Add("TaxonomyItem__" + FormatAlternate(alternate));
                }
            });

            builder.Describe("TaxonomyItemLink")
            .OnDisplaying(displaying => {
                var shape        = displaying.Shape;
                var metadata     = displaying.ShapeMetadata;
                IContent content = shape.Taxonomy;
                var taxonomy     = content.As <TaxonomyPart>();
                metadata.Alternates.Add("TaxonomyItemLink__" + FormatAlternate(taxonomy.Slug));

                TermPart term = shape.ContentPart;
                foreach (var alternate in GetHierarchyAlternates(term).Reverse())
                {
                    metadata.Alternates.Add("TaxonomyItemLink__" + FormatAlternate(alternate));
                }
            });

            builder.Describe("Content")
            .OnDisplaying(displaying => {
                // add specific alternates for customizing a Content item when
                // it is associated to a term or taxonomy

                var shape    = displaying.Shape;
                var metadata = displaying.ShapeMetadata;

                // use TermsPart to detect if the content item has a TermPart attached
                // in conjunction with its field name
                ContentItem contentItem = shape.ContentItem;
                var termsPart           = contentItem.As <TermsPart>();

                if (termsPart == null)
                {
                    return;
                }

                var taxonomy = displaying.Shape.Taxonomy as TaxonomyPart;

                // Content__[ContentType]__[Field]__[Slug]
                // Content-Image-MainColor-Blue.cshtml
                // Content-Image-MainColor-Blue-Light-Blue.cshtml

                // Content_[DisplayType]__[ContentType]__[Field]__[Slug]
                // Content-Image-MainColor-Blue.Summary.cshtml
                // Content-Image-MainColor-Blue-Light-Blue.Summary.cshtml

                foreach (var termContentItem in termsPart.TermParts)
                {
                    var field    = termContentItem.Field;
                    var termPart = termContentItem.TermPart;

                    foreach (var parent in GetHierarchyAlternates(termPart).Reverse())
                    {
                        var formatted = FormatAlternate(parent);

                        metadata.Alternates.Add(String.Concat("Content__", contentItem.ContentType, "__", field, "__", formatted));
                        metadata.Alternates.Add(String.Concat("Content_", metadata.DisplayType, "__", contentItem.ContentType, "__", field, "__", formatted));
                    }
                }
            });
        }
コード例 #27
0
 public void EditTaxonomy(TaxonomyPart taxonomy, string oldName)
 {
     // rename term definition
     _contentDefinitionManager.AlterTypeDefinition(taxonomy.TermTypeName,
         cfg => cfg
             .WithSetting("Taxonomy", taxonomy.Name)
             .DisplayedAs(taxonomy.Name + " Term")
         );
 }
コード例 #28
0
 public TermPart NewTerm(TaxonomyPart taxonomy) {
     return NewTerm(taxonomy, null);
 }
コード例 #29
0
 private TreeNode GetTaxonomyNode(TaxonomyPart taxonomy) {
     return new TreeNode {
         Title = taxonomy.Name,
         Type = "taxonomy",
         Id = taxonomy.Id.ToString(CultureInfo.InvariantCulture),
         Url = _url.Action(
             "Index", "TermAdmin",
             new RouteValueDictionary {
                 {"area", "Contrib.Taxonomies"},
                 {"taxonomyId", taxonomy.Id}
             })
     };
 }
コード例 #30
0
ファイル: TaxonomyService.cs プロジェクト: wezmag/Coevery
        public void MoveTerm(TaxonomyPart taxonomy, TermPart term, TermPart parentTerm) {
            var children = GetChildren(term);
            term.Container = parentTerm == null ? taxonomy.ContentItem : parentTerm.ContentItem;
            ProcessPath(term);

            var contentItem = _contentManager.Get(term.ContentItem.Id, VersionOptions.DraftRequired);
            _contentManager.Publish(contentItem);

            foreach (var childTerm in children) {
                ProcessPath(childTerm);

                contentItem = _contentManager.Get(childTerm.ContentItem.Id, VersionOptions.DraftRequired);
                _contentManager.Publish(contentItem);
            }
        }
コード例 #31
0
ファイル: TaxonomyService.cs プロジェクト: wezmag/Coevery
        public TermPart NewTerm(TaxonomyPart taxonomy) {
            var term = _contentManager.New<TermPart>(taxonomy.TermTypeName);
            term.TaxonomyId = taxonomy.Id;

            return term;
        }
コード例 #32
0
        public TermPart CreateTermFor(TaxonomyPart taxonomy, string termName, string termSlug)
        {
            var existingTerm = _taxonomyService.GetTermByName(taxonomy.Id, termName);

            if (existingTerm != null)
                return existingTerm;

            return CreateChildTermFor(taxonomy, null, termName, termSlug);
        }
コード例 #33
0
 public TermPart NewTerm(TaxonomyPart taxonomy)
 {
     return(NewTerm(taxonomy, null));
 }
コード例 #34
0
        public TermPart NewTerm(TaxonomyPart taxonomy, IContent parent) {
            if (taxonomy == null) {
                throw new ArgumentNullException("taxonomy");
            }

            if (parent != null) {
                var parentAsTaxonomy = parent.As<TaxonomyPart>();
                if (parentAsTaxonomy != null && parentAsTaxonomy != taxonomy) {
                    throw new ArgumentException("The parent of a term can't be a different taxonomy", "parent");
                }

                var parentAsTerm = parent.As<TermPart>();
                if (parentAsTerm != null && parentAsTerm.TaxonomyId != taxonomy.Id) {
                    throw new ArgumentException("The parent of a term can't be a from a different taxonomy", "parent");
                }
            }

            var term = _contentManager.New<TermPart>(taxonomy.TermTypeName);
            term.Container = parent ?? taxonomy;
            term.TaxonomyId = taxonomy.Id;
            ProcessPath(term);

            return term;
        }
コード例 #35
0
        private void CreateTerm(TaxonomyPart taxonomyPart, string termName, int order) {
            
            if (taxonomyPart != null && termName != null) 
            {
                var term = _taxonomyService.NewTerm(taxonomyPart);
                term.Container = taxonomyPart.ContentItem;
                term.Name = termName.Trim();
                term.Weight = order;
                term.Selectable = true;

                _taxonomyService.ProcessPath(term);
                _contentManager.Create(term, VersionOptions.Published);
            }
        }
コード例 #36
0
ファイル: TaxonomyService.cs プロジェクト: wezmag/Coevery
        public void DeleteTaxonomy(TaxonomyPart taxonomy) {
            _contentManager.Remove(taxonomy.ContentItem);

            // Removing terms
            foreach (var term in GetTerms(taxonomy.Id)) {
                DeleteTerm(term);
            }

            _contentDefinitionManager.DeleteTypeDefinition(taxonomy.TermTypeName);
        }
コード例 #37
0
 private void CreateTerm(TaxonomyPart genre, string genreName) {
     var term = _taxonomyService.NewTerm(genre);
     term.Name = genreName;
     _contentManager.Create(term, VersionOptions.Published);
 }
コード例 #38
0
ファイル: ProductService.cs プロジェクト: Devqon/Devq.Sellit
 public void CreateCategory(TaxonomyPart taxonomy, string category, string parent = null, bool selectable = false) {
     var term = _taxonomyService.GetTermByName(taxonomy.Id, category);
     if (term == null)
     {
         if (parent == null)
         {
             term = _taxonomyService.NewTerm(taxonomy);
         }
         else
         {
             var parentTerm = _taxonomyService.GetTermByName(taxonomy.Id, parent);
             // If parent doesnt exist, create it
             if (parentTerm == null)
             {
                 CreateCategory(taxonomy, parent);
             }
             term = _taxonomyService.NewTerm(taxonomy, parentTerm);
         }
         term.Name = category;
         term.Selectable = selectable;
         _contentManager.Create(term);
     }
 }