Example #1
0
        public async Task <IActionResult> Index()
        {
            var topics = await _uf.TopicRepository.GetAllAsync(x => x.TopicStatus != TopicStatus.Disabled);

            var paging = new MoPaging
            {
                Total    = topics.Count(),
                PageSize = 15
            };

            return(View(paging));
        }
        public async Task <IActionResult> Index(int id)
        {
            var bbs = await _uf.BBSRepository.GetByIdAsync(id);

            if (bbs == null)
            {
                return(Redirect("http://localhost:17758/home/error"));
            }

            var topics = await _uf.TopicRepository.GetAllAsync(x => x.BbsId == id && x.TopicStatus != TopicStatus.Disabled);

            var paging = new MoPaging
            {
                Total    = topics.Count(),
                PageSize = 15
            };

            ViewData["Title"] = bbs.Bbsname;
            ViewData["BBSId"] = bbs.Id;
            return(View(typeof(MoPaging), paging));
        }
        public async Task <IActionResult> Topic(int id)
        {
            var topic = await _uf.TopicRepository.GetAsync(x => x.Id == id && x.TopicStatus != TopicStatus.Disabled);

            if (topic == null)
            {
                return(RedirectToAction("home", "error", new Dictionary <string, object>()
                {
                    { "msg", "帖子丢失啦~~~~" }
                }));
            }

            var bbs = await _uf.BBSRepository.GetByIdAsync(topic.BbsId);

            if (bbs == null)
            {
                return(RedirectToAction("home", "error", new Dictionary <string, object>()
                {
                    { "msg", "帖子丢失啦~~~~" }
                }));
            }

            var replys = await _uf.ReplyRepository.GetAllAsync(x => x.TopicId == id);

            var paging = new MoPaging
            {
                Total    = replys.Count(),
                PageSize = 15
            };

            if (HttpContext.TryGetUserInfo(out var userInfo))
            {
                var user = await _uf.UserRepository.GetByIdAsync(userInfo.Id);

                if (user == null)
                {
                    return(RedirectToAction("home", "error", new Dictionary <string, object>()
                    {
                        { "msg", "请重新登录啦~~~~" }
                    }));
                }

                var isLike = await _uf.TopicStarRepository.IsExistAsync(x => x.TopicId == topic.Id && x.UserId == user.Id);

                ViewData["IsLike"] = isLike;

                if (user.Id == topic.UserId)
                {
                    ViewData["Role"] = "User";
                }

                if ((userInfo.Roles.Equals("admin", StringComparison.OrdinalIgnoreCase) && bbs.UserId == userInfo.Id) ||
                    userInfo.Roles.Equals("superadmin", StringComparison.OrdinalIgnoreCase))
                {
                    ViewData["Role"] = "Admin";
                }
            }
            else
            {
                ViewData["IsLike"] = false;
                ViewData["Role"]   = String.Empty;
            }

            ViewData["TopicStatus"] = topic.TopicStatus.ToString();
            ViewData["Title"]       = topic.TopicName;
            ViewData["TopicId"]     = topic.Id;
            ViewData["BBSId"]       = topic.BbsId;
            ViewData["BBSName"]     = bbs.Bbsname;
            ViewData["StarCount"]   = topic.StarCount;

            return(View(typeof(MoPaging), paging));
        }