示例#1
0
        public IActionResult WorkFlowInstances(WorkFlowInstanceModel model)
        {
            if (model.WorkFlowId.Equals(Guid.Empty))
            {
                return(NotFound());
            }
            model.FlowInfo = _workFlowFinder.FindById(model.WorkFlowId);
            FilterContainer <WorkFlowInstance> filter = FilterContainerBuilder.Build <WorkFlowInstance>();

            filter.And(n => n.WorkFlowId == model.WorkFlowId);

            if (model.GetAll)
            {
                model.Page     = 1;
                model.PageSize = WebContext.PlatformSettings.MaxFetchRecords;
            }
            else if (!model.PageSizeBySeted && CurrentUser.UserSettings.PagingLimit > 0)
            {
                model.PageSize = CurrentUser.UserSettings.PagingLimit;
            }
            model.PageSize = model.PageSize > WebContext.PlatformSettings.MaxFetchRecords ? WebContext.PlatformSettings.MaxFetchRecords : model.PageSize;
            PagedList <WorkFlowInstance> result = _workFlowInstanceService.QueryPaged(x => x
                                                                                      .Page(model.Page, model.PageSize)
                                                                                      .Where(filter)
                                                                                      .Sort(n => n.OnFile(model.SortBy).ByDirection(model.SortDirection))
                                                                                      );

            model.Items      = result.Items;
            model.TotalItems = result.TotalItems;
            return(DynamicResult(model));
        }