Example #1
0
        public List<Tag> GetTags(Nav nav)
        {
            using (var db = new BlogDbContext())
            {
                var tags = new List<Tag>();

                foreach (var t in db.TagEntities.Where(t=>t.NavId == nav.NavId))
                {
                    var tag = new Tag(nav)
                    {
                        TagId = t.TagId,
                        TagName = WebHelper.UrlDecode(t.Name),
                        Description = t.Description,
                        PostCount = t.PostCount,
                    };
                    tags.Add(tag);
                }

                return tags;
            }
        }
Example #2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="tag"></param>
        public void UpdateTag(Tag tag)
        {
            using (var db = new BlogDbContext())
            {
                // check if a tag with this name exists in this nav
                var ent = db.TagEntities.FirstOrDefault(n => n.Name.ToLower() == tag.TagName.ToLower() && n.NavId == tag.Nav.NavId);
                if (ent != null)
                    throw new SiteException("Tag exists.");

                // find the current tag
                ent = db.TagEntities.FirstOrDefault(n => n.TagId == tag.TagId);
                if (ent == null)
                    return;

                // update it
                ent.Name = tag.TagName;
                ent.Description = tag.Description;

                // save it
                db.SaveChanges();
            }
        }
Example #3
0
        /// <summary>
        /// Adds a tag.
        /// </summary>
        /// <param name="tag"></param>
        /// <returns></returns>
        /// <exception cref="BlogException">Throw if already exists</exception>
        public int AddTag(Tag tag)
        {
            using (var db = new BlogDbContext())
            {
                if (db.TagEntities.FirstOrDefault(n => n.Name.ToLower() == tag.TagName.ToLower()) != null)
                    throw new SiteException("Msg_Tag_Exists");

                var ent = new TagEntity();
                ent.Name = tag.TagName;
                ent.Description = tag.Description;
                ent.NavId = tag.Nav.NavId;

                db.TagEntities.Add(ent);
                db.SaveChanges();

                return ent.TagId;
            }
        }
Example #4
0
 public void UpdateTag(Tag tag)
 {
     throw new NotImplementedException();
 }
Example #5
0
 public int AddTag(Tag tag)
 {
     tagList.Add(tag);
     return tagList.Count;
 }
Example #6
0
        /// <summary>
        /// Returns a list of Tag object given a comma delimited tag string.
        /// If the string is null or empty, it will return an empty list of Tag object.
        /// </summary>
        /// <remarks>Used by AddPost and UpdatePost</remarks>
        public static List<Tag> GetTagsFromTagsString(Nav nav, string tagString)
        {
            if (string.IsNullOrWhiteSpace(tagString)) return new List<Tag>();

            // convert tagString to List<string>
            List<string> tagNames = Tag.SplitTagsString(tagString);
            if (tagNames == null || tagNames.Count <= 0)
            {
                return new List<Tag>();
            }

            List<Tag> tagList = new List<Tag>();
            foreach (var tagName in tagNames)
            {
                Tag tag = new Tag(nav);
                tag.TagName = WebHelper.UrlEncode(Tag.ShortenTagName(tagName));
                tagList.Add(tag);
            }

            return tagList;
        }
Example #7
0
        /// <summary>
        /// Updates tag by its id.
        /// </summary>
        public static void UpdateTag(Nav nav, int tagId, string tagName, string description)
        {
            if (string.IsNullOrWhiteSpace(tagName)) throw new SiteException("Tag cannot be empty.");

            Tag tag = new Tag(nav)
            {
                TagId = tagId,
                TagName = Tag.FormatTagName(tagName),
                Description = WebHelper.HtmlEncode(description),
            };

            Provider.UpdateTag(tag);

            SiteCache.ClearRegion(nav.Slug);
            //SiteCache.Remove(BlogHelper.GetCacheKey_Posts(nav.Slug, QueryBy.Index)); // posts
            //SiteCache.Remove(BlogHelper.GetCacheKey_Tags(nav.Slug));
        }