コード例 #1
0
        /// <summary>
        /// 根据查询条件获取公告分页列表
        /// </summary>
        public PagedResultDto <NoticeListDto> GetPagedNotices(GetNoticeInput input)
        {
            var query = from a in noticeservice.GetAll()
                        join b in userservice.GetAll() on a.CreatorUserId equals b.Id into c
                        from d in c.DefaultIfEmpty()
                        select new NoticeListDto
            {
                Id              = a.Id,
                Title           = a.Title,
                Content         = a.Content,
                CreatorUserName = d.DisplayName,
                Enabled         = a.Enabled,
                StartTime       = a.StartTime,
                EndTime         = a.EndTime,
                CreationTime    = a.CreationTime
            };

            query = query.WhereIf(!string.IsNullOrEmpty(input.FilterText), t => t.CreatorUserName.Contains(input.FilterText) || t.Title.Contains(input.FilterText));

            //TODO:根据传入的参数添加过滤条件
            var Notices       = query.OrderByDescending(t => t.CreationTime).PageBy(input).ToList();
            var NoticeListDto = Notices.MapTo <List <NoticeListDto> >();

            return(new PagedResultDto <NoticeListDto>(query.Count(), NoticeListDto));
        }
コード例 #2
0
        private IQueryable <Notice> GetFilteredQuery(GetNoticeInput input)
        {
            var query = QueryableExtensions.WhereIf(_noticeRepository.GetAll()
                                                    .Include(x => x.User),
                                                    !input.Filter.IsNullOrWhiteSpace(), u =>
                                                    u.Title.Contains(input.Filter) ||
                                                    u.Message.Contains(input.Filter));

            return(query);
        }
コード例 #3
0
        public ActionResult GetDataList(string keyword, int type = 0, int pIndex = 1)
        {
            ViewBag.pageName = "GetDataList";
            var input = new GetNoticeInput()
            {
                FilterText = keyword, SkipCount = (pIndex - 1) * PageSize, MaxResultCount = PageSize
            };
            var pagedata = noticeservice.GetPagedNotices(input);

            GetPageData(pagedata.TotalCount);
            return(PartialView("Shared/DataList", pagedata.Items));
        }
コード例 #4
0
        public async Task <PagedResultDto <NoticeListDto> > GetNotice(GetNoticeInput input)
        {
            var query     = GetFilteredQuery(input);
            var userCount = await query.CountAsync();

            var notices = await query
                          .OrderBy(input.Sorting)
                          .PageBy(input)
                          .ToListAsync();

            var noticesListDto = ObjectMapper.Map <List <NoticeListDto> >(notices);

            return(new PagedResultDto <NoticeListDto>(
                       userCount,
                       noticesListDto
                       ));
        }