Beispiel #1
0
        public async Task <IActionResult> Edit(string id, [Bind("User_id,User_name,Fans_num,Blog_num,Comment_num,User_pwd,Avatar")] mb_user mb_user)
        {
            if (id != mb_user.User_id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(mb_user);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!mb_userExists(mb_user.User_id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(mb_user));
        }
        //利用深度优先搜索,将数据库中相应的搜索查询出来并封装
        public async Task dfs(CommentDetails comment)
        {
            //查询所有当前评论的子评论
            var comment2 = from b in _context.mb_comment select b;

            comment2 = comment2.Where(m => m.comment_id == comment.comment.ID);
            List <mb_comment> mb_comment = await comment2.AsNoTracking().ToListAsync();

            foreach (var item in mb_comment)
            {
                mb_user user = await _context.mb_user.SingleOrDefaultAsync(b => b.User_id == item.User_publish);

                CommentDetails m = new CommentDetails(item, user);
                comment.listnum++;
                comment.listson.Add(m);
                await dfs(comment.listson[comment.listnum - 1]);
            }
        }
Beispiel #3
0
        public async Task <IActionResult> Create([Bind("ID,User_id,User_name,Fans_num,Blog_num,Comment_num,User_pwd,Avatar")] mb_user mb_user)
        {
            if (ModelState.IsValid)
            {
                mb_user.Avatar = "../../userhead/1.png";
                _context.Add(mb_user);
                await _context.SaveChangesAsync();

                //用户标识
                var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                identity.AddClaim(new Claim(ClaimTypes.Name, mb_user.User_id));

                identity.AddClaim(new Claim(ClaimTypes.Role, "User"));
                //用户签到
                await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));

                return(RedirectToAction("Index", "Home"));
            }
            return(View(mb_user));
        }
 public CommentDetails(mb_comment comment, mb_user user)
 {
     this.user    = user;
     this.listson = new List <CommentDetails>();
     this.comment = comment;
 }
        // GET: mb_blog/Details/5
        public async Task <IActionResult> Details(int?id, string createid)
        {
            if (id == null)
            {
                return(NotFound());
            }
            BlogDetails blogDetails = new BlogDetails();
            //获取博客信息
            var mb_blog = await _context.mb_blog
                          .SingleOrDefaultAsync(m => m.Blog_id == id);

            //获取用户信息
            var mb_user = await _context.mb_user.
                          SingleOrDefaultAsync(m => m.User_id == createid);

            //将博客信息,和用户信息都传入blogDetails
            blogDetails.blog = mb_blog;
            blogDetails.user = mb_user;

            //搜索用户id=creatid的博客
            var blog = from b in _context.mb_blog select b;

            blog = blog.Where(b => b.Create_id == createid);

            blogDetails.listblog = await blog.AsNoTracking().ToListAsync();


            if (mb_blog == null)
            {
                return(NotFound());
            }

            //每次有用户访问了Details,都意味着这篇博客的访问数量+1
            mb_blog.PageViews++;
            try {
                _context.Update(mb_blog);
                await _context.SaveChangesAsync();
            }
            catch { }

            //当当前用户和博客创建者已经是订阅关系了
            var mb_relation = _context.mb_relationship.SingleOrDefaultAsync(m => m.UserA_id == User.Identity.Name && m.UserB_id == mb_blog.Create_id);

            if (mb_relation.Result != null)
            {
                ViewData["IsRelation"] = "true";
            }

            //获取所有该博客的评论
            var comment = from b in _context.mb_comment select b;

            comment = comment.Where(m => m.blog_id == id && m.comment_id == 0);

            List <mb_comment> mb_comment = await comment.AsNoTracking().ToListAsync();

            List <CommentDetails> allcomment = new List <CommentDetails>();

            foreach (var item in mb_comment)
            {
                mb_user user = await _context.mb_user.SingleOrDefaultAsync(m => m.User_id == item.User_publish);

                allcomment.Add(new CommentDetails(item, user));
            }
            foreach (var item in allcomment)
            {
                await dfs(item);
            }

            ViewBag.CO = allcomment;

            return(View(blogDetails));
        }