Esempio n. 1
0
        public List <string> GetTaxonNamesByTaxonomy(string taxonomyName)
        {
            TaxonomyManager manager = TaxonomyManager.GetManager();

            var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).Single();

            return(taxonomy.Taxa
                   .Select(x => x.Name)
                   .ToList());
        }
Esempio n. 2
0
        public List <Guid> GetTaxonIdsByTaxonomy(List <string> taxonNames, string taxonomyName)
        {
            TaxonomyManager manager = TaxonomyManager.GetManager();

            var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).Single();

            return(taxonomy.Taxa
                   .Where(x => taxonNames.Contains(x.Name))
                   .Select(x => x.Id)
                   .ToList());
        }
Esempio n. 3
0
        /// <summary>
        /// Generic Taxon control, use GetCategories or GetTags for the defaults
        /// </summary>
        /// <returns>IQueryable<HierarchicalTaxon></returns>
        public static List <HierarchicalTaxon> GetHierarchicalTaxons(this DynamicContent item, string fieldName, string taxonomyName)
        {
            var categories = item.GetValue <TrackedList <Guid> >(fieldName);

            TaxonomyManager manager = TaxonomyManager.GetManager();

            var taxonomyParent = manager.GetTaxonomies <HierarchicalTaxonomy>().SingleOrDefault(x => x.Name == taxonomyName);
            var taxons         = taxonomyParent.Taxa.Where(x => categories.Contains(x.Id)).Select(x => (HierarchicalTaxon)x);

            return(taxons.ToList());
        }
        private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager)
        {
            TaxonomyManager taxonomyManager = new TaxonomyManager();
            var tax = taxonomyManager.GetTaxonomies<FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault();

            foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown))
            {
                var taxon = taxonomyManager.GetTaxa<FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault();
                if (taxon == null)
                {
                    taxon = taxonomyManager.CreateTaxon<FlatTaxon>();
                    taxon.Name = tag.Term;
                    taxon.Title = tag.Term;

                    tax.Taxa.Add(taxon);
                    taxonomyManager.SaveChanges();
                }

                blogPost.Organizer.AddTaxa("Tags", taxon.Id);
                blogsManager.SaveChanges();
            }
        }
Esempio n. 5
0
        private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager)
        {
            TaxonomyManager taxonomyManager = new TaxonomyManager();
            var             tax             = taxonomyManager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault();

            foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown))
            {
                var taxon = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault();
                if (taxon == null)
                {
                    taxon       = taxonomyManager.CreateTaxon <FlatTaxon>();
                    taxon.Name  = tag.Term;
                    taxon.Title = tag.Term;

                    tax.Taxa.Add(taxon);
                    taxonomyManager.SaveChanges();
                }

                blogPost.Organizer.AddTaxa("Tags", taxon.Id);
                blogsManager.SaveChanges();
            }
        }
Esempio n. 6
0
        private FlatTaxonomy GetFlatTaxonomy(string taxonomyName)
        {
            var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == taxonomyName).FirstOrDefault();

            return(taxonomy);
        }
Esempio n. 7
0
        /// <summary>
        /// Adds a custom field to Press article
        /// </summary>
        /// <param name="fieldname">Name of the field</param>
        /// <param name="isHierarchicalTaxonomy">is hierarchical taxonomy</param>
        public void AddCustomTaxonomyToContext(string fieldname, bool isHierarchicalTaxonomy)
        {
            Type pressArticleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle");

            if (pressArticleType == null)
            {
                throw new ArgumentException("PressArticle type can't be resolved.");
            }

            var context = new CustomFieldsContext(pressArticleType);

            TaxonomyManager manager = TaxonomyManager.GetManager();
            Guid            taxonomyId;

            if (isHierarchicalTaxonomy == true)
            {
                var taxonomy = manager.GetTaxonomies <HierarchicalTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault();
                if (taxonomy != null)
                {
                    taxonomyId = taxonomy.Id;
                }
                else
                {
                    throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system");
                }
            }
            else
            {
                var taxonomy = manager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Title == fieldname).SingleOrDefault();
                if (taxonomy != null)
                {
                    taxonomyId = taxonomy.Id;
                }
                else
                {
                    throw new ArgumentException("The taxonomy '" + fieldname + "' does not exist in the system");
                }
            }

            UserFriendlyDataType userFriendlyDataType = UserFriendlyDataType.Classification;
            var field = new WcfField()
            {
                Name         = fieldname,
                ContentType  = "Telerik.Sitefinity.DynamicTypes.Model.PressRelease.PressArticle",
                FieldTypeKey = userFriendlyDataType.ToString(),
                IsCustom     = true,

                // Field definition
                Definition = new WcfFieldDefinition()
                {
                    Title                  = fieldname,
                    FieldName              = fieldname.ToLower(),
                    FieldType              = isHierarchicalTaxonomy ? typeof(HierarchicalTaxonField).FullName : typeof(FlatTaxonField).FullName,
                    TaxonomyId             = taxonomyId.ToString(),
                    AllowMultipleSelection = true,
                }
            };

            var fields = new Dictionary <string, WcfField>();

            fields.Add(field.FieldTypeKey, field);

            context.AddOrUpdateCustomFields(fields, pressArticleType.Name);
            context.SaveChanges();
        }