Ejemplo n.º 1
0
        /// <summary>
        /// 新增博客
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <CommonResultDto <string> > Post(BlogAddDto dto)
        {
            using (await _context.Database.BeginTransactionAsync())
            {
                System.ComponentModel.NullableConverter nullableDateTime = new System.ComponentModel.NullableConverter(typeof(DateTime?));
                string           blogContentId = Guid.NewGuid().ToString();
                string           blogId        = Guid.NewGuid().ToString();
                tbl_blog_content tbl_content   = new tbl_blog_content
                {
                    Id      = blogContentId,
                    Content = dto.Content
                };

                tbl_blog tbl_blog = new tbl_blog
                {
                    Id         = blogId,
                    Title      = dto.Title,
                    ContentId  = blogContentId,
                    Remark     = dto.Remark,
                    CategoryId = dto.CategoryId,
                    PicUrl     = dto.PicUrl,
                    ViewTimes  = 0,
                    LikeTimes  = 0,
                    State      = dto.State == "1" ? '1' : '2', //状态(枚举类型 1未发布 2已发布)
                    CreateAt   = DateTime.Now,
                    PublishAt  = dto.State == "2" ? DateTime.Now : (DateTime?)nullableDateTime.ConvertFromString(null),
                    DeleteAt   = null
                };

                List <tbl_blog_tag_relation> relationList = new List <tbl_blog_tag_relation>();
                foreach (var item in dto.TagIdList)
                {
                    relationList.Add(new tbl_blog_tag_relation
                    {
                        Id     = Guid.NewGuid().ToString(),
                        BlogId = blogId,
                        TagId  = item
                    });
                }

                await _context.tbl_blog.AddAsync(tbl_blog);

                await _context.tbl_blog_content.AddAsync(tbl_content);

                await _context.tbl_blog_tag_relation.AddRangeAsync(relationList);

                await _context.SaveChangesAsync();

                _context.Database.CommitTransaction();

                return(new CommonResultDto <string> {
                    Msg = "新增成功", Success = true
                });
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 更新博客
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <CommonResultDto <string> > Update(BlogUpdateDto dto)
        {
            using (await _context.Database.BeginTransactionAsync())
            {
                tbl_blog blog = await _context.tbl_blog.FirstOrDefaultAsync(i => i.Id == dto.Id);

                tbl_blog_content content = await _context.tbl_blog_content.FirstOrDefaultAsync(i => i.Id == blog.ContentId);

                List <tbl_blog_tag_relation> tagRelations = await _context.tbl_blog_tag_relation.Where(i => i.BlogId == dto.Id).ToListAsync();

                List <tbl_blog_tag_relation> insertTags = new List <tbl_blog_tag_relation>();
                foreach (var tagId in dto.TagIdList)
                {
                    insertTags.Add(new tbl_blog_tag_relation
                    {
                        Id     = Guid.NewGuid().ToString(),
                        BlogId = dto.Id,
                        TagId  = tagId
                    });
                }

                blog.Title      = dto.Title;
                blog.PicUrl     = dto.PicUrl;
                blog.CategoryId = dto.CategoryId;
                blog.UpdateAt   = DateTime.Now;
                _context.tbl_blog.Update(blog);

                content.Content = dto.Content;
                _context.tbl_blog_content.Update(content);

                _context.tbl_blog_tag_relation.RemoveRange(tagRelations);
                await _context.tbl_blog_tag_relation.AddRangeAsync(insertTags);

                await _context.SaveChangesAsync();

                _context.Database.CommitTransaction();

                return(new CommonResultDto <string> {
                    Msg = "更新成功", Success = true
                });
            }
        }