private List <Tag> CreateTags(Thread thread)
        {
            if (string.IsNullOrEmpty(_tagString.Trim(',')) || !_forumManager.ValidateAccessSecurityAction(ForumAction.TagCreate, thread))
            {
                return(new List <Tag>());
            }

            List <Tag> list;
            List <Tag> existingTags = ForumDataProvider.GetAllTags(TenantProvider.CurrentTenantID);

            var newTags = (from tagName in _tagString.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                           where !existingTags.Exists(et => et.Name.Equals(tagName, StringComparison.InvariantCultureIgnoreCase))
                           select new Tag()
            {
                ID = 0, Name = tagName
            }).Distinct(new TagComparer());

            var exTags = from exTag in existingTags
                         from tagName in _tagString.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                         where tagName.Equals(exTag.Name, StringComparison.InvariantCultureIgnoreCase)
                         select exTag;

            list = new List <Tag>(newTags.ToArray());
            list.AddRange(exTags.ToArray());
            return(list);
        }