Ejemplo n.º 1
0
        public async Task <TagBlog> FindOrCreate(string IdOrName)
        {
            var data = await db.TagBlogs.FindAsync(IdOrName);

            if (data != null)
            {
                return(data);
            }
            data = await db.TagBlogs.FirstOrDefaultAsync(x => x.Name == IdOrName);

            if (data != null)
            {
                return(data);
            }
            data = new TagBlog()
            {
                Id   = new DBHelper().GetTagBlogId(db),
                Name = IdOrName,
            };
            db.TagBlogs.Add(data);
            if ((await db.SaveMessageAsync() != null))
            {
                return(null);
            }
            return(data);
        }
Ejemplo n.º 2
0
 public ActionResult <TagBlog> Create([FromBody] TagBlog newTagBlog)
 {
     try
     {
         return(Ok(_tbs.Create(newTagBlog)));
     }
     catch (System.Exception err)
     {
         return(BadRequest(err.Message));
     }
 }
Ejemplo n.º 3
0
 public ActionResult <TagBlog> Create([FromBody] TagBlog newTagBlog)
 {
     try
     {
         return(Ok(_tbs.Create(newTagBlog)));
     }
     catch (System.Exception)
     {
         throw;
     }
 }
        internal TagBlog Create(TagBlog newTagBlog)
        {
            string sql = @"
        INSERT INTO tagblogs
        (blogId, tagId)
        VALUES
        (@BlogId, @TagId);
        SELECT LAST_INSERT_ID()";

            newTagBlog.Id = _db.ExecuteScalar <int>(sql, newTagBlog);
            return(newTagBlog);
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,FullName")] TagBlog tag)
        {
            if (await db.TagBlogs.AnyAsync(x => x.Id != tag.Id && x.FullName == tag.FullName))
            {
                return(Json(Js.Error(Global.TagBlogUsed)));
            }
            ;
            tag.Name            = tag.FullName.GetSafeName();
            db.Entry(tag).State = EntityState.Modified;
            var str = await db.SaveMessageAsync();

            if (str != null)
            {
                return(Json(str.GetError()));
            }
            return(Json(Js.SuccessRedirect(TD.Global.TagBlogChanged, "/admin/tagblogs")));;
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Create([Bind(Include = "Id,FullName")] TagBlog tag)
        {
            if (db.TagBlogs.Any(x => x.FullName == tag.FullName))
            {
                return(Json(Js.Error(TD.Global.TagBlogUsed)));;
            }
            tag.Id   = new DBHelper().GetTagBlogId(db);
            tag.Name = tag.FullName.GetSafeName();
            db.TagBlogs.Add(tag);
            var str = await db.SaveMessageAsync();

            if (str != null)
            {
                return(Json(Js.Error(str)));
            }
            return(Json(Js.SuccessRedirect(TD.Global.TagBlogInserted, "/admin/tagblogs")));;
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(Json(Js.Error(Global.NoData)));
            }
            TagBlog tag = await db.TagBlogs.FindAsync(id);

            if (tag == null)
            {
                return(Json(Js.Error(Global.NoData)));
            }
            db.TagBlogs.Remove(tag);
            var str = await db.SaveMessageAsync();

            if (str != null)
            {
                return(Json(str.GetError()));
            }
            return(Json(Js.SuccessRedirect(TD.Global.TagBlogRemove, "/admin/tagblogs")));;
        }
Ejemplo n.º 8
0
        public async Task <ActionResult> Edit(BlogEditModel model)
        {
            var db          = new TDContext();
            var currentUser = User.Identity.GetUserId();

            var blog = await db.Blogs.FindAsync(model.Id);

            if (blog == null)
            {
                return(Json(Js.Error("Không tìm thấy bài viết")));
            }
            blog.FullName = model.FullName;
            blog.Name     = model.FullName.GetSafeName();
            blog.Content  = await model.Content.GetValidHtml();

            blog.ReasonModify += model.ReasonModify;
            blog.MarkDelete    = model.MarkDelete;
            blog.Summary       = await blog.Content.GetSummary();

            blog.LongSummary = await blog.Content.GetSummary(500);

            blog.ModifierId = currentUser;
            blog.LastModify = DateTime.UtcNow;
            blog.Closed     = model.Closed;
            if (model.TagBlogId != null)
            {
                var lstSelect = new List <string>();
                foreach (string item in model.TagBlogId)
                {
                    Guid    tagId       = item.ToGuid();
                    TagBlog findTagBlog = null;
                    if (tagId != Guid.Empty)
                    {
                        findTagBlog = db.TagBlogs.Find(tagId);
                    }

                    if (findTagBlog == null)
                    {
                        findTagBlog = db.TagBlogs.FirstOrDefault(x => x.FullName == item);
                        if (findTagBlog == null)
                        {
                            findTagBlog = new TagBlog(); //TagBlog(item); Fix
                            db.TagBlogs.Add(findTagBlog);
                        }
                    }
                    lstSelect.Add(findTagBlog.Id);
                }
                var current = blog.BlogTags.Select(x => x.TagBlogId).ToList();
                foreach (var item in current)
                {
                    if (!lstSelect.Contains(item))
                    {
                        var find = db.BlogTags.Find(item, blog.Id);
                        if (find != null)
                        {
                            db.BlogTags.Remove(find);
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(model.ParentId))
            {
                var parent = await db.Blogs.FindAsync(model.ParentId);

                if (parent != null)
                {
                    blog.ParentId = parent.Id;
                    var lstAdd = new List <string>();
                    foreach (var item in parent.BlogTags.Select(x => x.TagBlogId))
                    {
                        if (!lstAdd.Contains(item) && !await db.BlogTags.AnyAsync(x => x.TagBlogId == item && x.BlogId == model.Id))
                        {
                            db.BlogTags.Add(new BlogTag
                            {
                                BlogId    = model.Id,
                                TagBlogId = item,
                            });
                            lstAdd.Add(item);
                        }
                    }
                }
            }

            db.Entry(blog).State = EntityState.Modified;
            var res = await db.SaveMessageAsync();

            if (!string.IsNullOrEmpty(res))
            {
                return(Json(Js.Error(res)));
            }
            return(Json(Js.SuccessRedirect(Global.BlogChanged, "/admin/blogs")));
        }
Ejemplo n.º 9
0
 internal TagBlog Create(TagBlog newTagBlog)
 {
     return(_repo.Create(newTagBlog));
 }