Example #1
0
        private static string GetTermLevel(ManagedMetadataEntity entity, int termLevel)
        {
            switch (termLevel)
            {
            case 1:
                return((entity.Level1Term ?? string.Empty).Trim());

            case 2:
                return((entity.Level2Term ?? string.Empty).Trim());

            case 3:
                return((entity.Level3Term ?? string.Empty).Trim());

            case 4:
                return((entity.Level4Term ?? string.Empty).Trim());

            case 5:
                return((entity.Level5Term ?? string.Empty).Trim());

            case 6:
                return((entity.Level6Term ?? string.Empty).Trim());

            case 7:
                return((entity.Level7Term ?? string.Empty).Trim());

            default:
                return(string.Empty);
            }
        }
Example #2
0
        private static void UpdateTerm(TermSetItem termSet, ManagedMetadataEntity entity, IEnumerable <IEnumerable <ManagedMetadataEntity> > termLevels, int currLevel)
        {
            int    lcid     = entity.LCID.HasValue ? entity.LCID.Value : 1033;
            string termName = TaxonomyItem.NormalizeName(entity.GetTermLevel(currLevel));

            if (string.IsNullOrEmpty(termName))
            {
                return;
            }

            Term term = termSet is TermSet
                            ? (termSet as TermSet).GetTerms(termName, lcid, true, StringMatchOption.ExactMatch, 1, false).
                        FirstOrDefault()
                            : termSet.Terms.FirstOrDefault(t => t.Name.Equals(termName, StringComparison.InvariantCulture));

            if (term == null)
            {
                //try
                //{
                term = termSet.CreateTerm(termName, lcid, Guid.NewGuid());
                term.IsAvailableForTagging = entity.AvailableForTagging;
                //}
                //catch (Exception ex)
                //{
                //}
            }

            LabelCollection allLabels = term.GetAllLabels(lcid);

            if (allLabels.Count == 0 || !allLabels.Select(x => x.Value).Contains(termName))
            {
                //try
                //{
                term.CreateLabel(termName, lcid, true);
                term.SetDescription(entity.TermDescription, lcid);
                //}
                //catch (Exception ex)
                //{
                //}
            }

            if (termLevels == null)
            {
                return;
            }
            if (currLevel >= termLevels.Count())
            {
                return;
            }

            IEnumerable <ManagedMetadataEntity> childList =
                termLevels.ElementAt(currLevel).Where(
                    t => t.HasSameLevelTerm(currLevel, entity));

            foreach (ManagedMetadataEntity childEntity in childList)
            {
                UpdateTerm(term, childEntity, termLevels, currLevel + 1);
            }
        }
        public bool HasSameLevelTerm(int termLevel, ManagedMetadataEntity entity)
        {
            var levelTerms = new[]
                                      {
                                          Level1Term, Level2Term, Level3Term, Level4Term, Level5Term, Level6Term,
                                          Level7Term
                                      };

            for (int i = 0; i < Math.Min(termLevel, levelTerms.Length); i++)
            {
                string levelTerm1 = (levelTerms[i] ?? string.Empty).Trim();
                string levelTerm2 = GetTermLevel(entity, i + 1);

                if (!levelTerm1.Equals(levelTerm2))
                {
                    return false;
                }
            }

            return true;
        }
Example #4
0
        public bool HasSameLevelTerm(int termLevel, ManagedMetadataEntity entity)
        {
            var levelTerms = new[]
            {
                Level1Term, Level2Term, Level3Term, Level4Term, Level5Term, Level6Term,
                Level7Term
            };

            for (int i = 0; i < Math.Min(termLevel, levelTerms.Length); i++)
            {
                string levelTerm1 = (levelTerms[i] ?? string.Empty).Trim();
                string levelTerm2 = GetTermLevel(entity, i + 1);

                if (!levelTerm1.Equals(levelTerm2))
                {
                    return(false);
                }
            }

            return(true);
        }
        private static void UpdateTerm(TermSetItem termSet, ManagedMetadataEntity entity, IEnumerable<IEnumerable<ManagedMetadataEntity>> termLevels, int currLevel)
        {
            int lcid = entity.LCID.HasValue ? entity.LCID.Value : 1033;
            string termName = TaxonomyItem.NormalizeName(entity.GetTermLevel(currLevel));

            if (string.IsNullOrEmpty(termName))
            {
                return;
            }

            Term term = termSet is TermSet
                            ? (termSet as TermSet).GetTerms(termName, lcid, true, StringMatchOption.ExactMatch, 1, false).
                                  FirstOrDefault()
                            : termSet.Terms.FirstOrDefault(t => t.Name.Equals(termName, StringComparison.InvariantCulture));

            if (term == null)
            {
                //try
                //{
                term = termSet.CreateTerm(termName, lcid, Guid.NewGuid());
                term.IsAvailableForTagging = entity.AvailableForTagging;
                //}
                //catch (Exception ex)
                //{
                //}
            }

            LabelCollection allLabels = term.GetAllLabels(lcid);

            if (allLabels.Count == 0 || !allLabels.Select(x => x.Value).Contains(termName))
            {
                //try
                //{
                term.CreateLabel(termName, lcid, true);
                term.SetDescription(entity.TermDescription, lcid);
                //}
                //catch (Exception ex)
                //{
                //}
            }

            if (termLevels == null) { return; }
            if (currLevel >= termLevels.Count()) return;

            IEnumerable<ManagedMetadataEntity> childList =
                termLevels.ElementAt(currLevel).Where(
                    t => t.HasSameLevelTerm(currLevel, entity));

            foreach (ManagedMetadataEntity childEntity in childList)
            {
                UpdateTerm(term, childEntity, termLevels, currLevel + 1);
            }
        }
        private static ManagedMetadataEntity GetEntity(IEnumerable<string> values)
        {
            if (values == null)
            {
                return null;
            }

            int count = values.Count();
            ManagedMetadataEntity entity = new ManagedMetadataEntity();

            if (count > 0)
            {
                try
                {
                    entity.TermSetName = values.ElementAt(0);

                    if (count > 1)
                    {
                        entity.TermSetDescription = values.ElementAt(1);

                        if (count > 2)
                        {
                            int lcid;

                            if (int.TryParse(values.ElementAt(2), out lcid))
                            {
                                entity.LCID = entity.LCID == default(int) ? 1033 : lcid;
                            }
                            if (count > 3)
                            {
                                bool availableForTagging;
                                if (bool.TryParse(values.ElementAt(3), out availableForTagging))
                                {
                                    entity.AvailableForTagging = availableForTagging;
                                }

                                if (count > 4)
                                {
                                    entity.TermDescription = values.ElementAt(4);
                                    if (count > 5)
                                    {
                                        entity.Level1Term = values.ElementAt(5);

                                        if (count > 6)
                                        {
                                            entity.Level2Term = values.ElementAt(6);
                                        }
                                        if (count > 7)
                                        {
                                            entity.Level3Term = values.ElementAt(7);
                                        }
                                        if (count > 8)
                                        {
                                            entity.Level4Term = values.ElementAt(8);
                                        }
                                        if (count > 9)
                                        {
                                            entity.Level5Term = values.ElementAt(9);
                                        }
                                        if (count > 10)
                                        {
                                            entity.Level6Term = values.ElementAt(10);
                                        }
                                        if (count > 11)
                                        {
                                            entity.Level7Term = values.ElementAt(11);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }

            return entity;
        }
 private static string GetTermLevel(ManagedMetadataEntity entity, int termLevel)
 {
     switch (termLevel)
     {
         case 1:
             return (entity.Level1Term ?? string.Empty).Trim();
         case 2:
             return (entity.Level2Term ?? string.Empty).Trim();
         case 3:
             return (entity.Level3Term ?? string.Empty).Trim();
         case 4:
             return (entity.Level4Term ?? string.Empty).Trim();
         case 5:
             return (entity.Level5Term ?? string.Empty).Trim();
         case 6:
             return (entity.Level6Term ?? string.Empty).Trim();
         case 7:
             return (entity.Level7Term ?? string.Empty).Trim();
         default:
             return string.Empty;
     }
 }
Example #8
0
        private static ManagedMetadataEntity GetEntity(IEnumerable <string> values)
        {
            if (values == null)
            {
                return(null);
            }

            int count = values.Count();
            ManagedMetadataEntity entity = new ManagedMetadataEntity();

            if (count > 0)
            {
                try
                {
                    entity.TermSetName = values.ElementAt(0);

                    if (count > 1)
                    {
                        entity.TermSetDescription = values.ElementAt(1);

                        if (count > 2)
                        {
                            int lcid;

                            if (int.TryParse(values.ElementAt(2), out lcid))
                            {
                                entity.LCID = entity.LCID == default(int) ? 1033 : lcid;
                            }
                            if (count > 3)
                            {
                                bool availableForTagging;
                                if (bool.TryParse(values.ElementAt(3), out availableForTagging))
                                {
                                    entity.AvailableForTagging = availableForTagging;
                                }

                                if (count > 4)
                                {
                                    entity.TermDescription = values.ElementAt(4);
                                    if (count > 5)
                                    {
                                        entity.Level1Term = values.ElementAt(5);

                                        if (count > 6)
                                        {
                                            entity.Level2Term = values.ElementAt(6);
                                        }
                                        if (count > 7)
                                        {
                                            entity.Level3Term = values.ElementAt(7);
                                        }
                                        if (count > 8)
                                        {
                                            entity.Level4Term = values.ElementAt(8);
                                        }
                                        if (count > 9)
                                        {
                                            entity.Level5Term = values.ElementAt(9);
                                        }
                                        if (count > 10)
                                        {
                                            entity.Level6Term = values.ElementAt(10);
                                        }
                                        if (count > 11)
                                        {
                                            entity.Level7Term = values.ElementAt(11);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }

            return(entity);
        }