/// <summary> /// 获取页面文章 /// </summary> /// <param name="input"></param> /// <returns></returns> public GetPageDatasOutput GetPageDatas(GetPageDatasInput input) { PageBase page = null; if (!string.IsNullOrWhiteSpace(input.PageName)) { page = _repository.GetAllIncluding(e => e.PageDatas).FirstOrDefault(e => e.Name == input.PageName); } if (page == null && input.Id != null) { page = _repository.GetAllIncluding(e => e.PageDatas).FirstOrDefault(e => e.Id == input.Id); } if (page == null) { throw new UserFriendlyException("获取文章列表失败,未找到页面"); } return(new GetPageDatasOutput() { PageDatas = _objectMapper.Map <List <PageDataDto> >(page.PageDatas), ResourceNum = page.PageDatas.Count, PageIndex = input.PageIndex }); }
/// <summary> /// 获取页面文章 /// </summary> /// <param name="input"></param> /// <returns></returns> public GetPageDatasOutput GetPageDatas(GetPageDatasInput input) { IQueryable <PageData> pageDatas = null; if (input.EnablePageFilter) { // 除了可访问的页面文章之外,还有用户发表过的文章 pageDatas = _pageDataManager.PostRepository.GetAllIncluding(e => e.Tags).Where(e => input.FilterPageNames.Contains(e.PageName) || (_abpSession.UserId != null && e.Creator.EditorId == _abpSession.UserId)); } else { pageDatas = _pageDataManager.PostRepository.GetAllIncluding(e => e.Tags); } if (!string.IsNullOrWhiteSpace(input.PageName)) { pageDatas = pageDatas.Where(e => e.PageName == input.PageName); } if (!string.IsNullOrWhiteSpace(input.SearchKey)) { pageDatas = pageDatas.Where(e => e.Title.Contains(input.SearchKey)); } if (input.Tags != null && input.Tags.Count > 0) { foreach (var item in input.Tags) { pageDatas = pageDatas.Where(e => e.Tags.Any(ie => ie.Name == item)); } } int num = pageDatas.Count(); if (input.IsScore()) { pageDatas = pageDatas.OrderByDescending(e => e.Score); } else if (input.IsClick()) { pageDatas = pageDatas.OrderByDescending(e => e.Click); } else { pageDatas = pageDatas.OrderByDescending(e => e.Id); } var queryResults = pageDatas.Skip((input.PageIndex - 1) * input.PageSize + input.Top).Take(input.PageSize).ToList(); return(new GetPageDatasOutput() { PageDatas = _objectMapper.Map <List <PageDataDto> >(queryResults), ResourceNum = num, PageIndex = input.PageIndex }); }
public GetPageDatasOutput GetPageDatas(GetPageDatasInput input) { var page = _repository.GetAllIncluding(e => e.PageDatas).FirstOrDefault(e => e.Name == input.PageName); return(new GetPageDatasOutput() { PageDatas = AutoMapper.Mapper.Map <List <PageDataDto> >(page.PageDatas), PageDataNum = page.PageDatas.Count }); }