Example #1
0
        public async Task <ActionResult <IEnumerable <ArticleDTO> > > GetArticlesByPage([FromQuery] int limit, [FromQuery] int pageIndex)
        {
            List <Article> articles = await articleService.GetArticlesByPageAndIsShowAsync(limit, pageIndex, true);

            List <ArticleDTO> articleDTOs = await articleMapper.MapperToDTOsAsync(articles);

            return(Ok(articleDTOs));
        }
Example #2
0
        public async Task <ActionResult> GetInitData()
        {
            IndexInitDataDTO obj = await RedisHelper.GetAsync <IndexInitDataDTO>("ZswBlog:Index:InitData");

            if (obj != null)
            {
                return(Ok(obj));
            }
            else
            {
                //首页的数据初始化数据
                List <Article> articles = await articleService.GetArticlesByPageAndIsShowAsync(3, 1, true);

                List <ArticleDTO> articleDTOs = await articleMapper.MapperToDTOsAsync(articles);

                List <Message>    messages    = (await messageService.GetMessagesOnNotReplyAsyncByPageAsync(10, 1)).ToList();
                List <MessageDTO> messageDTOs = new List <MessageDTO>();
                foreach (var item in messages)
                {
                    User user = await userService.GetUserByIdAsync(item.UserId);

                    MessageDTO messageDTO = await messageMapper.MapperToSingleDTOAsync(item, user);

                    messageDTOs.Add(messageDTO);
                }
                DateTime date1        = DateTime.Parse("2019-10-08 00:00:00");
                DateTime date2        = DateTime.Now;
                TimeSpan sp           = date2.Subtract(date1);
                int      tagCount     = (await tagService.GetAllTagsAsync()).Count();
                int      timeCount    = sp.Days;
                int      articleCount = (await articleService.GetAllArticlesAsync()).Count();
                int      visitCount   = await GetVisit();

                IndexInitDataDTO initDataDTO = new IndexInitDataDTO()
                {
                    DataCount = new CountData()
                    {
                        VisitsCount  = visitCount,
                        TagsCount    = tagCount,
                        RunDays      = timeCount,
                        ArticleCount = articleCount
                    },
                    Articles = articleDTOs.ToList(),
                    Messages = messageDTOs
                };
                await RedisHelper.SetAsync("ZswBlog:Index:InitData", initDataDTO, 3600);

                return(Ok(initDataDTO));
            }
        }