public ApiPagingListResponse <WorkTaskModel> SearcWorkTasks(SearchWorkTaskModel search, int pageIndex = 0, int pageSize = 25)
        {
            //查询满足条件的图书
            var query = this.WorkTaskService.SearchByCriteria(search, pageIndex, pageSize);

            //查询结果
            var result = new PaginationModel <WorkTaskModel>();

            result.Result = query.Result;

            //分页
            result.Page = new Page()
            {
                PageIndex  = query.PageIndex,
                PageSize   = query.PageSize,
                TotalPages = query.TotalPages,
                TotalCount = query.TotalCount
            };

            return(new ApiPagingListResponse <WorkTaskModel>
            {
                Result = query.Result,
                Page = result.Page
            });
        }
        /// <summary>
        /// 分页条件查询工作任务
        /// </summary>
        /// <param name="search">查询条件</param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页大小</param>
        /// <returns>满足条件的工作任务</returns>
        public IPagedList <WorkTaskModel> SearchByCriteria(SearchWorkTaskModel search, int pageIndex, int pageSize)
        {
            using (var dbContext = new MissionskyOAEntities())
            {
                var query  = DoSearch(dbContext, search); //查询
                var result = new List <WorkTaskModel>();

                query.ToList().ForEach(entity => result.Add(DoFill(entity.ToModel())));

                return(new PagedList <WorkTaskModel>(result, pageIndex, pageSize));
            }
        }
        /// <summary>
        /// 查询工作任务
        /// </summary>
        /// <param name="dbContext">数据库上下文对象</param>
        /// <param name="search">查询条件</param>
        /// <returns>满足条件的工作任务</returns>
        private IEnumerable <WorkTask> DoSearch(MissionskyOAEntities dbContext, SearchWorkTaskModel search)
        {
            search = search ?? new SearchWorkTaskModel();

            //状态查询
            var query = dbContext.WorkTasks.Where(
                it =>
                !search.Status.HasValue || search.Status.Value == WorkTaskStatus.Invalid ||                                               //查询所有
                it.Status == (int)search.Status.Value);                                                                                   //查询指定状态

            query = query.Where(it => !search.Sponsor.HasValue || search.Sponsor == 0 || it.Sponsor == search.Sponsor.Value);             //指定发起人
            query = query.Where(it => !search.Executor.HasValue || search.Executor == 0 || it.Sponsor == search.Executor.Value);          //指定执行人
            query = query.Where(it => !search.Supervisor.HasValue || search.Supervisor == 0 || it.Supervisor == search.Supervisor.Value); //指定监督人
            query = query.Where(it => !search.ProjectId.HasValue || search.ProjectId == 0 || it.ProjectId == search.ProjectId.Value);     //项目Id查找
            query = query.Where(it => !search.MeetingId.HasValue || search.MeetingId == 0 || it.MeetingId == search.MeetingId.Value);     //会议Id查找

            return(query);
        }