Exemple #1
0
 public PagedResult<SystemPermission> GetPermissionPaging(int companyId, string keyword, bool? isDeleted, PagingInput pagingInput)
 {
     var query = GetPermissions(companyId, keyword, isDeleted);
     var result = new PagedResult<SystemPermission>(query);
     result.SetPaging(pagingInput);
     return result;
 }
        public ActionResult Index(string id, ActivitiesQueryInput activityInput, PagingInput pagingInput)
        {
            string userId = VerbosifyId <User>(id);

            if (!_permissionManager.DoesExist <User>(userId))
            {
                return(HttpNotFound());
            }

            var userResult = _documentSession
                             .Query <All_Users.Result, All_Users>()
                             .AsProjection <All_Users.Result>()
                             .Where(x => x.UserId == userId)
                             .First();

            dynamic viewModel = new ExpandoObject();

            viewModel.User = _userViewModelQuery.BuildUser(userId);
            //viewModel.Activities = _activityViewModelQuery.BuildGroupActivityList(userResult.User.UserProject.Id, activityInput, pagingInput);
            viewModel.Activities = _activityViewModelQuery.BuildUserActivityList(userResult.User.Id, activityInput, pagingInput);
            //viewModel.IsMember = _userContext.IsUserAuthenticated() ? _userContext.HasGroupPermission<Project>(PermissionNames.CreateObservation, projectId) : false;
            viewModel.SightingCountDescription     = "Sighting" + (userResult.SightingCount == 1 ? string.Empty : "s");
            viewModel.ProjectCountDescription      = "Project" + (userResult.Projects.Count() == 1 ? string.Empty : "s");
            viewModel.OrganisationCountDescription = "Organisation" + (userResult.Organisations.Count() == 1 ? string.Empty : "s");
            viewModel.ShowActivities = true;

            return(RestfulResult(
                       viewModel,
                       "users",
                       "index"));
        }
Exemple #3
0
        /// <summary>
        /// 分页查询文章列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <QueryPostDto> > QueryPosts(PagingInput input)
        {
            var posts = await _postRepository.GetAllListAsync();

            var count = posts.Count;

            var list = posts.OrderByDescending(x => x.CreationTime).AsQueryable().PageByIndex(input.Page, input.Limit).ToList();

            var dtos = list.MapTo <IList <PostBriefDto> >().ToList();

            dtos.ForEach(x =>
            {
                x.CreationTime = Convert.ToDateTime(x.CreationTime).ToString("MMMM dd, yyyy HH:mm:ss", new CultureInfo("en-us"));
                x.Year         = Convert.ToDateTime(x.CreationTime).Year;
            });

            var result = new List <QueryPostDto>();

            var group = dtos.GroupBy(x => x.Year).ToList();

            group.ForEach(x =>
            {
                result.Add(new QueryPostDto
                {
                    Year  = x.Key,
                    Posts = x.ToList()
                });
            });

            return(new PagedResultDto <QueryPostDto>(count, result));
        }
 public List<DicReader> GetPlistVisitingLogTrs(string key, DateTime? leftVisitOn, DateTime? rightVisitOn, PagingInput paging)
 {
     paging.Valid();
     if (key != null)
     {
         key = key.Trim();
     }
     Func<SqlFilter> filter = () =>
     {
         var parameters = new List<DbParameter>();
         var filterString = @" where a.LoginName like @key ";
         parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
         if (leftVisitOn.HasValue)
         {
             parameters.Add(CreateParameter("leftVisitOn", leftVisitOn.Value, DbType.DateTime));
             filterString += " and a.VisitOn>=@leftVisitOn";
         }
         if (rightVisitOn.HasValue)
         {
             parameters.Add(CreateParameter("rightVisitOn", rightVisitOn.Value, DbType.DateTime));
             filterString += " and a.VisitOn<@rightVisitOn";
         }
         return new SqlFilter(filterString, parameters.ToArray());
     };
     return base.GetPlist("VisitingLog", filter, paging);
 }
Exemple #5
0
 public PagedResult<Company> GetCompaniesPaging(string keyword, bool? isActived, bool? isRootSite, bool? isDeleted, PagingInput pagingInput)
 {
     var query = GetCompanies(keyword, isActived, isRootSite, isDeleted);
     var result = new PagedResult<Company>(query);
     result.SetPaging(pagingInput);
     return result;
 }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="filterCallback"></param>
        /// <param name="paging"></param>
        /// <returns></returns>
        protected IList <T> GetPlist <T>(Func <ObjectFilter> filterCallback, PagingInput paging) where T : class, IEntity <Guid>
        {
            paging.Valid();
            string       setName = typeof(T).Name + "s";
            ObjectFilter filter  = ObjectFilter.Empty;

            if (filterCallback != null)
            {
                filter = filterCallback();
            }
            var queryString =
                @"select value a from " + setName + " as a " + filter.FilterString + " order by a." + paging.SortField + " " + paging.SortOrder;
            var countQs =
                @"select value a from " + setName + " as a " + filter.FilterString;

            IQueryable <T> countQuery;
            IQueryable <T> query;

            if (filter.Parameters != null)
            {
                countQuery = this.DbContext.CreateQuery <T>(countQs, filter.Parameters);
                query      = this.DbContext.CreateQuery <T>(queryString, filter.Parameters)
                             .Skip(paging.SkipCount).Take(paging.PageSize);
            }
            else
            {
                countQuery = this.DbContext.CreateQuery <T>(countQs);
                query      = this.DbContext.CreateQuery <T>(queryString)
                             .Skip(paging.SkipCount).Take(paging.PageSize);
            }

            paging.Total = countQuery.Count();

            return(query.ToList <T>());
        }
        public ActionResult Index(string id, ActivitiesQueryInput activityInput, PagingInput pagingInput)
        {
            string organisationId = VerbosifyId <Organisation>(id);

            if (!_permissionManager.DoesExist <Organisation>(organisationId))
            {
                return(HttpNotFound());
            }

            var organisationResult = _documentSession
                                     .Query <All_Groups.Result, All_Groups>()
                                     .AsProjection <All_Groups.Result>()
                                     .First(x => x.GroupId == organisationId);

            dynamic viewModel = new ExpandoObject();

            viewModel.Organisation         = _organisationViewModelQuery.BuildOrganisation(organisationId);
            viewModel.Activities           = _activityViewModelQuery.BuildGroupActivityList(organisationId, activityInput, pagingInput);
            viewModel.IsMember             = _userContext.IsUserAuthenticated() ? _userContext.HasGroupPermission <Organisation>(PermissionNames.CreateObservation, organisationId) : false;
            viewModel.UserCountDescription = "Member" + (organisationResult.UserCount == 1 ? string.Empty : "s");
            viewModel.PostCountDescription = "Post" + (organisationResult.PostCount == 1 ? string.Empty : "s");
            viewModel.ShowActivities       = true;

            return(RestfulResult(
                       viewModel,
                       "organisations",
                       "index"));
        }
Exemple #8
0
        public async Task <PagedResponse <QueryPostDto> > QueryPostsAsync([FromQuery] PagingInput input)
        {
            var posts = await _context.Posts.ToListAsync();

            var count = posts.Count;

            var result = posts.OrderByDescending(x => x.CreationTime)
                         .Skip((input.Page - 1) * input.Limit)
                         .Take(input.Limit)
                         .Select(x => new PostBriefDto
            {
                Title        = x.Title,
                Url          = x.Url,
                Year         = Convert.ToDateTime(x.CreationTime).Year,
                CreationTime = Convert.ToDateTime(x.CreationTime).ToString("MMMM dd, yyyy HH:mm:ss", new CultureInfo("en-us"))
            })
                         .GroupBy(x => x.Year)
                         .Select(x => new QueryPostDto
            {
                Year  = x.Key,
                Posts = x.ToList()
            }).ToList();

            return(new PagedResponse <QueryPostDto>(count, result));
        }
Exemple #9
0
        public IList <ExceptionLog> GetPlistExceptionLogs(List <FilterData> filters, PagingInput paging)
        {
            paging.Valid();
            var                filterStringBuilder = _acDomain.RetrieveRequiredService <ISqlFilterStringBuilder>();
            RdbDescriptor      db = GetExceptionLogDb();
            List <DbParameter> prams;
            var                filterString = filterStringBuilder.FilterString(db, filters, "t", out prams);

            if (!string.IsNullOrEmpty(filterString))
            {
                filterString = " where " + filterString;
            }
            var sql =
                @"select top({0}) * 
from (SELECT ROW_NUMBER() OVER(ORDER BY {1} {2}) AS RowNumber,* FROM {3} as t"
                + filterString + ") a WHERE a.RowNumber > {4}";
            var countSql      = "select count(*) from ExceptionLog as t" + filterString;
            var exceptionLogs = new List <ExceptionLog>();
            var reader        = db.ExecuteReader(
                string.Format(sql, paging.PageSize, paging.SortField, paging.SortOrder, "ExceptionLog", paging.PageSize * paging.PageIndex), prams.ToArray());

            while (reader.Read())
            {
                exceptionLogs.Add(ExceptionLog.Create(reader));
            }
            paging.Total = (int)db.ExecuteScalar(countSql, prams.Select(p => ((ICloneable)p).Clone()).Cast <DbParameter>().ToArray());
            reader.Close();

            return(exceptionLogs);
        }
        public List <DicReader> GetPlistCatalogAccountTrs(string key, string catalogCode
                                                          , bool includeDescendants, PagingInput paging)
        {
            paging.Valid();
            if (string.IsNullOrEmpty(catalogCode))
            {
                throw new ArgumentNullException("catalogCode");
            }
            Func <SqlFilter> filter = () =>
            {
                var parameters   = new List <DbParameter>();
                var filterString = " where (a.Name like @key or a.Code like @key or a.LoginName like @key)";
                parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
                if (!includeDescendants)
                {
                    parameters.Add(CreateParameter("CatalogCode", catalogCode, DbType.String));
                    filterString += " and a.CatalogCode=@CatalogCode";
                }
                else
                {
                    parameters.Add(CreateParameter("CatalogCode", catalogCode + "%", DbType.String));
                    filterString += " and a.CatalogCode like @CatalogCode";
                }
                return(new SqlFilter(filterString, parameters.ToArray()));
            };

            return(base.GetPlist("CatalogAccountTr", filter, paging));
        }
Exemple #11
0
        public List<DicReader> GetPlistCatalogAccountTrs(string key, string catalogCode
            , bool includeDescendants, PagingInput paging)
        {
            paging.Valid();
            if (string.IsNullOrEmpty(catalogCode))
            {
                throw new ArgumentNullException("catalogCode");
            }
            Func<SqlFilter> filter = () =>
            {
                var parameters = new List<DbParameter>();
                var filterString = " where (a.Name like @key or a.Code like @key or a.LoginName like @key)";
                parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
                if (!includeDescendants)
                {
                    parameters.Add(CreateParameter("CatalogCode", catalogCode, DbType.String));
                    filterString += " and a.CatalogCode=@CatalogCode";
                }
                else
                {
                    parameters.Add(CreateParameter("CatalogCode", catalogCode + "%", DbType.String));
                    filterString += " and a.CatalogCode like @CatalogCode";
                }
                return new SqlFilter(filterString, parameters.ToArray());
            };

            return base.GetPlist("CatalogAccountTr", filter, paging);
        }
Exemple #12
0
        public void Filter_Order_Paging_WhenDynamicQueryNetInputIsPassed_ShouldReturnOrderedQueryable()
        {
            var filterInput = new List <FilterInput> {
                new FilterInput
                {
                    Operation = OperationTypeEnum.GreaterThanOrEqual,
                    Property  = "Date",
                    Value     = "2017/04/07",
                    Type      = InputTypeEnum.String
                },
                new FilterInput
                {
                    Operation = OperationTypeEnum.LessThanOrEqual,
                    Property  = "Date",
                    Value     = "2017/04/10",
                    Type      = InputTypeEnum.String
                }
            };


            var nonFilterInput = new Dictionary <string, string>
            {
                { "TestName1", "TestValue1" },
                { "TestName2", "TestValue2" },
                { "TestName3", "TestValue3" }
            };


            var orderInput = new List <OrderInput>
            {
                new OrderInput
                {
                    Property = "Number",
                    Order    = OrderTypeEnum.Desc
                }
            };

            var paging = new PagingInput()
            {
                Page = 2,
                Size = 2
            };

            var orderFilterInput = new DynamicQueryNetInput()
            {
                Order     = orderInput,
                Filter    = filterInput,
                NonFilter = nonFilterInput,
                Paging    = paging
            };

            var filteredResult = Mock.QueryableItems.Filter(orderFilterInput);

            var normalResult = Mock.QueryableItems.Where(p => (string.Compare(p.Date, "2017/04/07") >= 0) &&
                                                         (string.Compare(p.Date, "2017/04/10") <= 0))
                               .OrderByDescending(p => p.Number).Skip(2 * 2).Take(2);

            AssertUtil.EnumarableAreEqual(filteredResult, normalResult);
        }
        /// <summary>
        /// 根据条件分页查询服务器信息
        /// </summary>
        /// <param name="input">查询条件</param>
        /// <returns>服务器信息列表</returns>
        public async Task <PagingOutput <NpsServerSearchOutput> > SearchAsync(PagingInput <NpsServerSearchInput> input)
        {
            var servers = await _npsServerRepository
                          .WhereIf(input.Filter?.ServerIPAddress.IsNotNullOrEmpty() ?? false, x => x.ServerIPAddress == input.Filter.ServerIPAddress)
                          .OrderByDescending(x => x.CreateTime)
                          .ToPagingListAsync <NpsServer, NpsServerSearchOutput>(input, out long count);

            return(servers.ToPagingOutput(count));
        }
Exemple #14
0
        public async Task <Response <PagedResultDto <QueryPostDto> > > QueryPost([FromQuery] PagingInput input)
        {
            var response = new Response <PagedResultDto <QueryPostDto> >
            {
                Result = await _blogService.QueryPosts(input)
            };

            return(response);
        }
Exemple #15
0
 public PagingOutput <SsoSites> GetPageList(PagingInput input)
 {
     return(AutofacConfig.Resolve <SsoSitesRepository>().GetPageList(
                input.PageIndex,
                input.PageSize,
                null,
                a => a.CreateTime,
                true
                ));
 }
 public PagingOutput <AccountActionRelation> GetPageList(PagingInput input)
 {
     return(AutofacConfig.Resolve <AccountActionRelationRepository>().GetPageList(
                input.PageIndex,
                input.PageSize,
                null,
                a => a.CreateTime,
                true
                ));
 }
Exemple #17
0
 public DataTuple GetPlist(
     ArchiveState archive,
     OrderedElementSet selectElements,
     List <FilterData> filters,
     PagingInput pagingData)
 {
     return(this.GetPlistInfoItems(
                archive.Ontology, this.GetArchiveDb(archive.Ontology, archive),
                selectElements,
                filters, pagingData));
 }
Exemple #18
0
 public JsonResult GetPermissionList(int jtStartIndex = 0, int jtPageSize = 1, string jtSorting = null, string keyword = "")
 {
     PagingInput paging = new PagingInput (){
         PageIndex = jtStartIndex/jtPageSize,
         PageSize = jtPageSize,
         SortDirection = Mobile.Framework.Extensions.SortDirection.Ascending,
         SortPropertyName = "PermissionID"
     };
     var source = AppGlobal.Services.BusinessPermission.GetPermissionPaging(MobileAuthentication.User.CompanyId.Value, keyword, false,paging);
     return Json(new { Result = "OK", Records = source.Results, TotalRecordCount = source.RowCount });
 }
Exemple #19
0
 /// <summary>
 /// 按照目录分页获取指定节点、本体的数据
 /// <remarks>
 /// 如果传入的目录为空则表示获取全部目录的数据
 /// </remarks>
 /// </summary>
 /// <param name="ontology"></param>
 /// <param name="selectElements"></param>
 /// <param name="filters">过滤器列表</param>
 /// <param name="pagingData"></param>
 /// <returns></returns>
 public DataTuple GetPlist(
     OntologyDescriptor ontology,
     OrderedElementSet selectElements,
     List <FilterData> filters,
     PagingInput pagingData)
 {
     return(this.GetPlistInfoItems(
                ontology, this.GetEntityDb(ontology),
                selectElements,
                filters, pagingData));
 }
        public ActionResult List(SpeciesQueryInput speciesQueryInput, PagingInput pagingInput)
        {
            var viewModel = new
            {
                Species = _speciesViewModelQuery.BuildSpeciesList(speciesQueryInput, pagingInput)
            };

            return(RestfulResult(
                       viewModel,
                       "species",
                       "list"));
        }
Exemple #21
0
        public ActionResult GetPlistBatches(GetPlistBatchs input)
        {
            if (!ModelState.IsValid)
            {
                return(ModelState.ToJsonResult());
            }
            Guid?ontologyId = null;

            if (string.IsNullOrEmpty(input.OntologyCode))
            {
                ontologyId = null;
            }
            else
            {
                OntologyDescriptor ontology;
                if (!AcDomain.NodeHost.Ontologies.TryGetOntology(input.OntologyCode, out ontology))
                {
                    throw new ValidationException("意外的本体码" + input.OntologyCode);
                }
                ontologyId = ontology.Ontology.Id;
            }
            var pagingData = new PagingInput(input.PageIndex
                                             , input.PageSize, input.SortField, input.SortOrder);

            if (ontologyId != null)
            {
                input.Filters.Insert(0, FilterData.EQ("OntologyId", ontologyId.Value));
            }
            var data = GetRequiredService <IBatchQuery>().GetPlist(base.EntityType, () =>
            {
                RdbDescriptor rdb;
                if (!AcDomain.Rdbs.TryDb(base.EntityType.DatabaseId, out rdb))
                {
                    throw new AnycmdException("意外配置的Batch实体类型对象数据库标识" + base.EntityType.DatabaseId);
                }
                List <DbParameter> ps;
                var filterString = new SqlFilterStringBuilder().FilterString(rdb, input.Filters, "a", out ps);
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString = " where " + filterString;
                }
                return(new SqlFilter(filterString, ps.ToArray()));
            }, pagingData);

            Debug.Assert(pagingData.Total != null, "pagingData.Total != null");
            return(this.JsonResult(new MiniGrid <BatchTr> {
                total = pagingData.Total.Value, data = data.Select(a => new BatchTr(a))
            }));
        }
Exemple #22
0
 public List<DicReader> GetPlistGroupAccountTrs(string key, Guid groupId, PagingInput paging)
 {
     paging.Valid();
     Func<SqlFilter> filter = () =>
     {
         var parameters = new List<DbParameter>();
         const string filterString = @" where (a.Name like @key
     or a.Code like @key
     or a.LoginName like @key) and a.GroupId=@GroupId";
         parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
         parameters.Add(CreateParameter("GroupId", groupId, DbType.Guid));
         return new SqlFilter(filterString, parameters.ToArray());
     };
     return base.GetPlist("GroupAccountTr", filter, paging);
 }
Exemple #23
0
        /// <summary>
        /// 分页查询Commit记录
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <CommitDto> > QueryCommits(PagingInput input)
        {
            var query = await _commitRepository.GetAllListAsync();

            var count = query.Count();

            var result = query.Select(x => new CommitDto
            {
                Sha     = x.Sha,
                Message = x.Message,
                Date    = x.Date.ToString("yyyy-MM-dd HH:mm:ss")
            }).OrderByDescending(x => x.Date).PageByIndex(input.Page, input.Limit).ToList();

            return(new PagedResultDto <CommitDto>(count, result));
        }
        public ActionResult Activity(ActivitiesQueryInput activityInput, PagingInput pagingInput)
        {
            if (Request.IsAjaxRequest())
            {
                return(new JsonNetResult(new
                {
                    Model = new
                    {
                        Activities = _activityViewModelQuery.BuildHomeActivityList(_userContext.GetAuthenticatedUserId(), activityInput, pagingInput)
                    }
                }));
            }

            return(HttpNotFound());
        }
Exemple #25
0
        public List <DicReader> GetPlistGroupAccountTrs(string key, Guid groupId, PagingInput paging)
        {
            paging.Valid();
            Func <SqlFilter> filter = () =>
            {
                var          parameters   = new List <DbParameter>();
                const string filterString = @" where (a.Name like @key
	or a.Code like @key
	or a.LoginName like @key) and a.GroupId=@GroupId"    ;
                parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
                parameters.Add(CreateParameter("GroupId", groupId, DbType.Guid));
                return(new SqlFilter(filterString, parameters.ToArray()));
            };

            return(base.GetPlist("GroupAccountTr", filter, paging));
        }
Exemple #26
0
        /// <summary>
        /// 分页查询所有已开通服务列表
        /// </summary>
        /// <param name="input">查询服务参数</param>
        /// <returns>分页返回查询结果</returns>
        public async Task <List <NpsClientOpenedOutput> > SearchAsync(PagingInput <NpsClientSearchInput> input)
        {
            var outputs = new List <NpsClientOpenedOutput>();

            var npsAppSecrets = await _npsAppSecretRepository
                                .Where(x => x.CreateUserId == CurrentUser.UserId)
                                .WhereIf(input.Filter?.DeviceUniqueId.IsNotNullOrEmpty() ?? false, x => x.DeviceUniqueId == input.Filter.DeviceUniqueId)
                                .WhereCascade(x => x.IsDeleted == false)
                                .Include(x => x.NpsServer)
                                .Include(x => x.NpsClient)
                                .ToListAsync();

            if (npsAppSecrets.Count == 0)
            {
                return(outputs);
            }

            var npsClientIds = npsAppSecrets.Select(x => x.NpsClient?.Id ?? 0).ToList();

            var npsChannels = await _npsChannelRepository
                              .Where(x => x.IsDeleted == false)
                              .Where(x => npsClientIds.Contains(x.NpsClientId))
                              .WhereIf(input.Filter?.SearchPorts.IsNotNull() ?? false, x => input.Filter.SearchPorts.Contains(x.DeviceAddress))
                              .ToListAsync();

            if (npsChannels.Count == 0)
            {
                return(outputs);
            }

            npsAppSecrets.ForEach(npsAppSecret =>
            {
                if (npsAppSecret.NpsClient != null)
                {
                    npsAppSecret.NpsClient.NpsChannels = npsChannels.Where(x => x.NpsClientId == npsAppSecret.NpsClient?.Id).ToList();
                }
            });

            npsAppSecrets.ForEach(npsAppSecret =>
            {
                var npsClientOpenedOutput = Mapper.Map <NpsClientOpenedOutput>(npsAppSecret);
                outputs.Add(npsClientOpenedOutput);
            });
            return(outputs);
        }
Exemple #27
0
 public List<DicReader> GetPlistAccountTrs(List<FilterData> filters, string catalogCode, bool includeDescendants, PagingInput paging)
 {
     paging.Valid();
     bool byOrgCode = !string.IsNullOrEmpty(catalogCode);
     Func<SqlFilter> filter = () =>
     {
         List<DbParameter> parameters;
         var filterString = new SqlFilterStringBuilder().FilterString(base.DbContext.Rdb, filters, "a", out parameters);
         if (!string.IsNullOrEmpty(filterString))
         {
             filterString = " where 1=1 and " + filterString;
         }
         else
         {
             filterString = " where 1=1 ";
         }
         if (!includeDescendants)
         {
             if (byOrgCode)
             {
                 if (!string.IsNullOrEmpty(catalogCode))
                 {
                     parameters.Add(this.CreateParameter("CatalogCode", catalogCode, DbType.String));
                     filterString += "and a.CatalogCode=@CatalogCode ";
                 }
             }
         }
         else
         {
             if (byOrgCode)
             {
                 if (!string.IsNullOrEmpty(catalogCode))
                 {
                     parameters.Add(CreateParameter("CatalogCode", catalogCode + "%", DbType.String));
                     filterString += "and a.CatalogCode like @CatalogCode ";
                 }
             }
         }
         return new SqlFilter(filterString, parameters.ToArray());
     };
     return base.GetPlist("AccountTr", filter, paging);
 }
Exemple #28
0
        /// <summary>
        /// 分页查询好文
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <QueryNiceArticleDto> > QueryNicceArticle(PagingInput input)
        {
            var count = await _niceArticleRepository.CountAsync();

            var result = (from niceArticles in await _niceArticleRepository.GetAllListAsync()
                          join categories in await _categoryRepository.GetAllListAsync()
                          on niceArticles.CategoryId equals categories.Id
                          orderby niceArticles.Time descending
                          select new QueryNiceArticleDto
            {
                Title = niceArticles.Title,
                Author = niceArticles.Author,
                Source = niceArticles.Source,
                Url = niceArticles.Url,
                Category = categories.CategoryName,
                Time = niceArticles.Time.ToString("MMMM dd, yyyy HH:mm:ss", new CultureInfo("en-us")),
            }).PageByIndex(input.Page, input.Limit).ToList();

            return(new PagedResultDto <QueryNiceArticleDto>(count, result));
        }
Exemple #29
0
        public async Task NpsClientSearchTestAsync()
        {
            Thread.CurrentPrincipal = new ClaimsPrincipal
                                      (
                new ClaimsIdentity
                (
                    new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, "117084294703656960")
            }
                )
                                      );

            var input1 = new PagingInput <NpsClientSearchInput>();
            var input2 = new PagingInput <NpsClientSearchInput>
            {
                Filter = new NpsClientSearchInput {
                    DeviceUniqueId = "AAAAAAAAAA"
                }
            };
            var input3 = new PagingInput <NpsClientSearchInput>
            {
                Filter = new NpsClientSearchInput {
                    DeviceUniqueId = "BBBBBBBBBB", SearchPorts = new List <string> {
                        "1111", "5555", "6666"
                    }
                }
            };

            var searchResult1 = await _npsClientService.SearchAsync(input1);

            var searchResult2 = await _npsClientService.SearchAsync(input2);

            var searchResult3 = await _npsClientService.SearchAsync(input3);

            Assert.NotNull(searchResult1);
            Assert.NotNull(searchResult2);
            Assert.NotNull(searchResult3);
        }
 public List<DicReader> GetPlistVisitingLogTrs(Guid accountId, string loginName, DateTime? leftVisitOn, DateTime? rightVisitOn, PagingInput paging)
 {
     paging.Valid();
     loginName = (loginName ?? string.Empty).ToLower();
     Func<SqlFilter> filter = () =>
     {
         var parameters = new List<DbParameter>();
         var filterString = @" where (a.AccountId=@AccountId or Lower(a.LoginName)=@LoginName) ";
         parameters.Add(CreateParameter("LoginName", loginName, DbType.String));
         parameters.Add(CreateParameter("AccountId", accountId, DbType.Guid));
         if (leftVisitOn.HasValue)
         {
             parameters.Add(CreateParameter("leftVisitOn", leftVisitOn.Value, DbType.DateTime));
             filterString += " and a.VisitOn>=@leftVisitOn";
         }
         if (rightVisitOn.HasValue)
         {
             parameters.Add(CreateParameter("rightVisitOn", rightVisitOn.Value, DbType.DateTime));
             filterString += " and a.VisitOn<@rightVisitOn";
         }
         return new SqlFilter(filterString, parameters.ToArray());
     };
     return base.GetPlist("VisitingLog", filter, paging);
 }
Exemple #31
0
        public ActionResult PrivateIndex(ActivitiesQueryInput activityInput, PagingInput pagingInput)
        {
            var profiler = MiniProfiler.Current;

            using (profiler.Step("Check if user is authenticated"))
            {
                if (!_userContext.IsUserAuthenticated())
                {
                    return(RedirectToAction("PublicIndex"));
                }
            }

            dynamic viewModel = new ExpandoObject();

            using (profiler.Step("Build private index view model"))
            {
                var userResult = _documentSession
                                 .Query <All_Users.Result, All_Users>()
                                 .AsProjection <All_Users.Result>()
                                 .Where(x => x.UserId == _userContext.GetAuthenticatedUserId())
                                 .First();

                viewModel.User = _userViewModelQuery.BuildUser(_userContext.GetAuthenticatedUserId());
                using (profiler.Step("Build timeline items (ActivityViewModelQuery.BuildHomeActivityList)"))
                {
                    viewModel.Activities = _activityViewModelQuery.BuildHomeActivityList(_userContext.GetAuthenticatedUserId(), activityInput, pagingInput);
                }
                viewModel.ShowUserWelcome = userResult.User.CallsToAction.Contains("user-welcome");
                viewModel.ShowActivities  = true;
            }

            return(RestfulResult(
                       viewModel,
                       "home",
                       "privateindex"));
        }
        public IList<OperationLog> GetPlistOperationLogs(Guid? targetId,
            DateTime? leftCreateOn, DateTime? rightCreateOn
            , List<FilterData> filters, PagingInput paging)
        {
            paging.Valid();
            var filterStringBuilder = _acDomain.RetrieveRequiredService<ISqlFilterStringBuilder>();
            RdbDescriptor db = GetOperationLogDb();
            List<DbParameter> prams;
            var filterString = filterStringBuilder.FilterString(db, filters, "t", out prams);
            if (!string.IsNullOrEmpty(filterString))
            {
                filterString = " where " + filterString + "{0}";
            }
            else
            {
                filterString = " where 1=1 {0}";
            }
            if (targetId.HasValue)
            {
                filterString = string.Format(filterString, " and t.TargetID=@TargetId {0}");
            }
            if (leftCreateOn.HasValue)
            {
                filterString = string.Format(filterString, " and t.CreateOn >= @leftCreateOn");
            }
            if (rightCreateOn.HasValue)
            {
                filterString = string.Format(filterString, " and t.CreateOn < @rightCreateOn");
            }
            else
            {
                filterString = string.Format(filterString, string.Empty);
            }
            var sql =
            @"select top({0}) *
            from (SELECT ROW_NUMBER() OVER(ORDER BY {1} {2}) AS RowNumber,* FROM {3} as t"
            + filterString + ") a WHERE a.RowNumber > {4}";
            var countSql = "select count(*) from OperationLog as t" + filterString;

            var operationLogs = new List<OperationLog>();
            if (prams == null)
            {
                prams = new List<DbParameter>();
            }
            if (targetId.HasValue)
            {
                prams.Add(CreateParameter(db, "TargetId", targetId.Value, DbType.Guid));
            }
            if (leftCreateOn.HasValue)
            {
                prams.Add(CreateParameter(db, "leftCreateOn", leftCreateOn.Value, DbType.DateTime));
            }
            if (rightCreateOn.HasValue)
            {
                prams.Add(CreateParameter(db, "rightCreateOn", rightCreateOn.Value, DbType.DateTime));
            }
            var reader = db.ExecuteReader(
                string.Format(sql, paging.PageSize, paging.SortField, paging.SortOrder, "OperationLog", paging.PageSize * paging.PageIndex), prams.ToArray());
            while (reader.Read())
            {
                operationLogs.Add(OperationLog.Create(reader));
            }
            paging.Total = (int)db.ExecuteScalar(countSql, prams.Select(p => ((ICloneable)p).Clone()).Cast<DbParameter>().ToArray());
            reader.Close();

            return operationLogs;
        }
Exemple #33
0
        /// <summary>
        /// 根据目录获取给定节点和本体的数据,如果传入的目录为空表示获取本节点的数据
        /// <remarks>本节点通常是中心节点</remarks>
        /// </summary>
        /// <param name="ontology"></param>
        /// <param name="db">模型</param>
        /// <param name="filters"></param>
        /// <param name="selectElements">sql select语句的选择列集合</param>
        /// <param name="pagingData"></param>
        /// <returns>
        /// 数据记录列表,数据记录表现为字典形式,键是数据元素编码值是相应数据元素对应的数据项值
        /// </returns>
        private DataTuple GetPlistInfoItems(
			OntologyDescriptor ontology,
			RdbDescriptor db, OrderedElementSet selectElements, List<FilterData> filters,
			PagingInput pagingData)
        {
            if (string.IsNullOrEmpty(pagingData.SortField))
            {
                pagingData.SortField = "IncrementId";
            }
            if (string.IsNullOrEmpty(pagingData.SortOrder))
            {
                pagingData.SortOrder = "asc";
            }

            var elements = ontology.Elements;
            if (filters != null)
            {
                for (int i = 0; i < filters.Count; i++)
                {
                    var filter = filters[i];
                    if (elements.ContainsKey(filter.field))
                    {
                        // TODO:根据数据属性优化查询,比如对于身份证件号来说如果输入的值长度
                        // 为20或18的话可以将like替换为等于
                        filter.type = "string";
                        var element = elements[filter.field];
                        if (element.Element.IsEnabled != 1)
                        {
                            continue;
                        }
                        if (element.Element.InfoDicId.HasValue)
                        {
                            filter.comparison = "eq";
                        }
                        else
                        {
                            filter.comparison = "like";
                        }
                    }
                    else
                    {
                        filters.RemoveAt(i);
                    }
                }
            }

            var tableName = ontology.Ontology.EntityTableName;
            var sbSqlPredicate = new StringBuilder();
            var l = sbSqlPredicate.Length;

            var pQueryList = new List<DbParameter>();
            List<DbParameter> pFilters;
            var filterString = _filterStringBuilder.FilterString(db, filters, null, out pFilters);
            if (!string.IsNullOrEmpty(filterString))
            {
                foreach (var pFilter in pFilters)
                {
                    object obj = pFilter.Value;
                    if (obj == null)
                    {
                        obj = DBNull.Value;
                    }
                    var p = db.CreateParameter();
                    p.ParameterName = pFilter.ParameterName;
                    p.Value = obj;
                    pQueryList.Add(p);
                }
                if (sbSqlPredicate.Length != l)
                {
                    sbSqlPredicate.Append(" and ");
                }
                sbSqlPredicate.Append(filterString);
            }

            string sqlPredicateString = string.Empty;
            if (sbSqlPredicate.Length > 0)
            {
                sqlPredicateString = sbSqlPredicate.ToString();
            }
            var sqlText = new StringBuilder();
            OrderedElementSet elementList;
            if (selectElements == null || selectElements.Count == 0)
            {
                elementList = new OrderedElementSet { ontology.Elements["id"] };
            }
            else
            {
                elementList = selectElements;
            }
            sqlText.Append("SELECT TOP {0} ");
            int len = sqlText.Length;

            foreach (var element in elementList)
            {
                if (sqlText.Length != len)
                {
                    sqlText.Append(",");
                }
                sqlText.Append("[").Append(element.Element.FieldCode).Append("]");
            }

            sqlText.Append(" FROM (SELECT ROW_NUMBER() OVER(ORDER BY {1} {2}) AS RowNumber,");
            len = sqlText.Length;

            foreach (var element in elementList)
            {
                if (sqlText.Length != len)
                {
                    sqlText.Append(",");
                }
                sqlText.Append("[").Append(element.Element.FieldCode).Append("]");
            }

            sqlText.Append(" FROM {3} where ");
            if (ontology.Ontology.IsLogicalDeletionEntity)
            {
                sqlText.Append("DeletionStateCode = 0");
            }
            else
            {
                sqlText.Append("1 = 1");
            }
            if (!string.IsNullOrEmpty(sqlPredicateString))
            {
                sqlText.Append(" and ").Append(sqlPredicateString);
            }
            sqlText.Append(") a WHERE a.RowNumber > {4}");
            string sqlQuery = string.Format(
                sqlText.ToString(),
                pagingData.PageSize.ToString(CultureInfo.InvariantCulture),
                pagingData.SortField,
                pagingData.SortOrder,
                tableName,
                (pagingData.SkipCount).ToString(CultureInfo.InvariantCulture));

            pagingData.Count(() =>
            {
                string where = ontology.Ontology.IsLogicalDeletionEntity ? "where DeletionStateCode = 0" : "";
                string sqlCount = string.Format("select count(1) from {0} {1}", tableName, where);
                if (!string.IsNullOrEmpty(sqlPredicateString))
                {
                    sqlCount = sqlCount + " and " + sqlPredicateString;
                }
                return (int)db.ExecuteScalar(
                    sqlCount, pQueryList.Select(p => ((ICloneable)p).Clone()).Cast<DbParameter>().ToArray());
            });

            var list = new List<object[]>();
            var reader = db.ExecuteReader(sqlQuery, pQueryList.ToArray());
            while (reader.Read())
            {
                var values = new object[elementList.Count];
                for (int i = 0; i < elementList.Count; i++)
                {
                    values[i] = reader.GetValue(i);
                }
                list.Add(values);
            }
            reader.Close();

            return new DataTuple(elementList, list.ToArray());
        }
        public List <DicReader> GetPlistVisitingLogTrs(Guid accountId, string loginName, DateTime?leftVisitOn, DateTime?rightVisitOn, PagingInput paging)
        {
            paging.Valid();
            loginName = (loginName ?? string.Empty).ToLower();
            Func <SqlFilter> filter = () =>
            {
                var parameters   = new List <DbParameter>();
                var filterString = @" where (a.AccountId=@AccountId or Lower(a.LoginName)=@LoginName) ";
                parameters.Add(CreateParameter("LoginName", loginName, DbType.String));
                parameters.Add(CreateParameter("AccountId", accountId, DbType.Guid));
                if (leftVisitOn.HasValue)
                {
                    parameters.Add(CreateParameter("leftVisitOn", leftVisitOn.Value, DbType.DateTime));
                    filterString += " and a.VisitOn>=@leftVisitOn";
                }
                if (rightVisitOn.HasValue)
                {
                    parameters.Add(CreateParameter("rightVisitOn", rightVisitOn.Value, DbType.DateTime));
                    filterString += " and a.VisitOn<@rightVisitOn";
                }
                return(new SqlFilter(filterString, parameters.ToArray()));
            };

            return(base.GetPlist("VisitingLog", filter, paging));
        }
        public List <DicReader> GetPlistVisitingLogTrs(string key, DateTime?leftVisitOn, DateTime?rightVisitOn, PagingInput paging)
        {
            paging.Valid();
            if (key != null)
            {
                key = key.Trim();
            }
            Func <SqlFilter> filter = () =>
            {
                var parameters   = new List <DbParameter>();
                var filterString = @" where a.LoginName like @key ";
                parameters.Add(CreateParameter("key", "%" + key + "%", DbType.String));
                if (leftVisitOn.HasValue)
                {
                    parameters.Add(CreateParameter("leftVisitOn", leftVisitOn.Value, DbType.DateTime));
                    filterString += " and a.VisitOn>=@leftVisitOn";
                }
                if (rightVisitOn.HasValue)
                {
                    parameters.Add(CreateParameter("rightVisitOn", rightVisitOn.Value, DbType.DateTime));
                    filterString += " and a.VisitOn<@rightVisitOn";
                }
                return(new SqlFilter(filterString, parameters.ToArray()));
            };

            return(base.GetPlist("VisitingLog", filter, paging));
        }
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="TSource"></typeparam>
 /// <param name="query"></param>
 /// <param name="paging"></param>
 /// <returns></returns>
 public static IQueryable <TSource> SetPaging <TSource>(this IQueryable <TSource> query, PagingInput paging)
 {
     return(query.Skip(paging.SkipCount).Take(paging.PageSize));
 }
 /// <summary>
 /// 分页查询文章列表
 /// </summary>
 /// <param name="input"></param>
 /// <param name="factory"></param>
 /// <returns></returns>
 public async Task <ServiceResult <PagedList <QueryPostDto> > > QueryPostsAsync(PagingInput input, Func <Task <ServiceResult <PagedList <QueryPostDto> > > > factory)
 {
     return(await Cache.GetOrAddAsync(KEY_QueryPosts.FormatWith(input.Page, input.Limit), factory, CacheStrategy.ONE_DAY));
 }
Exemple #38
0
 /// <inheritdoc/>
 public Task <PagingOutput <NetworkInterfaceStatus> > GetPageAsync(string networkInterfaceName, PagingInput pagingInput)
 {
     Expression <Func <Entities.Network.NetworkInterfaceStatus, bool> > where = e => e.NetworkInterfaceName == networkInterfaceName;
     return(this.GetPageAsync(pagingInput, where));
 }
        public IList<ExceptionLog> GetPlistExceptionLogs(List<FilterData> filters, PagingInput paging)
        {
            paging.Valid();
            var filterStringBuilder = _acDomain.RetrieveRequiredService<ISqlFilterStringBuilder>();
            RdbDescriptor db = GetExceptionLogDb();
            List<DbParameter> prams;
            var filterString = filterStringBuilder.FilterString(db, filters, "t", out prams);
            if (!string.IsNullOrEmpty(filterString))
            {
                filterString = " where " + filterString;
            }
            var sql =
            @"select top({0}) *
            from (SELECT ROW_NUMBER() OVER(ORDER BY {1} {2}) AS RowNumber,* FROM {3} as t"
            + filterString + ") a WHERE a.RowNumber > {4}";
            var countSql = "select count(*) from ExceptionLog as t" + filterString;
            var exceptionLogs = new List<ExceptionLog>();
            var reader = db.ExecuteReader(
                string.Format(sql, paging.PageSize, paging.SortField, paging.SortOrder, "ExceptionLog", paging.PageSize * paging.PageIndex), prams.ToArray());
            while (reader.Read())
            {
                exceptionLogs.Add(ExceptionLog.Create(reader));
            }
            paging.Total = (int)db.ExecuteScalar(countSql, prams.Select(p => ((ICloneable)p).Clone()).Cast<DbParameter>().ToArray());
            reader.Close();

            return exceptionLogs;
        }
Exemple #40
0
        /// <summary>
        /// 按照目录分页获取指定节点、本体的数据
        /// <remarks>
        /// 如果传入的目录为空则表示获取全部目录的数据
        /// </remarks>
        /// </summary>
        /// <param name="ontology"></param>
        /// <param name="selectElements"></param>
        /// <param name="filters">过滤器列表</param>
        /// <param name="pagingData"></param>
        /// <returns></returns>
        public DataTuple GetPlist(
			OntologyDescriptor ontology,
			OrderedElementSet selectElements,
			List<FilterData> filters,
			PagingInput pagingData)
        {
            return this.GetPlistInfoItems(
                ontology, this.GetEntityDb(ontology),
                selectElements,
                filters, pagingData);
        }
Exemple #41
0
        public DataTuple GetPlist(
			ArchiveState archive,
			OrderedElementSet selectElements,
			List<FilterData> filters,
			PagingInput pagingData)
        {
            return this.GetPlistInfoItems(
                archive.Ontology, this.GetArchiveDb(archive.Ontology, archive),
                selectElements,
                filters, pagingData);
        }
Exemple #42
0
        /// <summary>
        /// 根据目录获取给定节点和本体的数据,如果传入的目录为空表示获取本节点的数据
        /// <remarks>本节点通常是中心节点</remarks>
        /// </summary>
        /// <param name="ontology"></param>
        /// <param name="db">模型</param>
        /// <param name="filters"></param>
        /// <param name="selectElements">sql select语句的选择列集合</param>
        /// <param name="pagingData"></param>
        /// <returns>
        /// 数据记录列表,数据记录表现为字典形式,键是数据元素编码值是相应数据元素对应的数据项值
        /// </returns>
        private DataTuple GetPlistInfoItems(
            OntologyDescriptor ontology,
            RdbDescriptor db, OrderedElementSet selectElements, List <FilterData> filters,
            PagingInput pagingData)
        {
            if (string.IsNullOrEmpty(pagingData.SortField))
            {
                pagingData.SortField = "IncrementId";
            }
            if (string.IsNullOrEmpty(pagingData.SortOrder))
            {
                pagingData.SortOrder = "asc";
            }

            var elements = ontology.Elements;

            if (filters != null)
            {
                for (int i = 0; i < filters.Count; i++)
                {
                    var filter = filters[i];
                    if (elements.ContainsKey(filter.field))
                    {
                        // TODO:根据数据属性优化查询,比如对于身份证件号来说如果输入的值长度
                        // 为20或18的话可以将like替换为等于
                        filter.type = "string";
                        var element = elements[filter.field];
                        if (element.Element.IsEnabled != 1)
                        {
                            continue;
                        }
                        if (element.Element.InfoDicId.HasValue)
                        {
                            filter.comparison = "eq";
                        }
                        else
                        {
                            filter.comparison = "like";
                        }
                    }
                    else
                    {
                        filters.RemoveAt(i);
                    }
                }
            }

            var tableName      = ontology.Ontology.EntityTableName;
            var sbSqlPredicate = new StringBuilder();
            var l = sbSqlPredicate.Length;

            var pQueryList = new List <DbParameter>();
            List <DbParameter> pFilters;
            var filterString = _filterStringBuilder.FilterString(db, filters, null, out pFilters);

            if (!string.IsNullOrEmpty(filterString))
            {
                foreach (var pFilter in pFilters)
                {
                    object obj = pFilter.Value;
                    if (obj == null)
                    {
                        obj = DBNull.Value;
                    }
                    var p = db.CreateParameter();
                    p.ParameterName = pFilter.ParameterName;
                    p.Value         = obj;
                    pQueryList.Add(p);
                }
                if (sbSqlPredicate.Length != l)
                {
                    sbSqlPredicate.Append(" and ");
                }
                sbSqlPredicate.Append(filterString);
            }

            string sqlPredicateString = string.Empty;

            if (sbSqlPredicate.Length > 0)
            {
                sqlPredicateString = sbSqlPredicate.ToString();
            }
            var sqlText = new StringBuilder();
            OrderedElementSet elementList;

            if (selectElements == null || selectElements.Count == 0)
            {
                elementList = new OrderedElementSet {
                    ontology.Elements["id"]
                };
            }
            else
            {
                elementList = selectElements;
            }
            sqlText.Append("SELECT TOP {0} ");
            int len = sqlText.Length;

            foreach (var element in elementList)
            {
                if (sqlText.Length != len)
                {
                    sqlText.Append(",");
                }
                sqlText.Append("[").Append(element.Element.FieldCode).Append("]");
            }

            sqlText.Append(" FROM (SELECT ROW_NUMBER() OVER(ORDER BY {1} {2}) AS RowNumber,");
            len = sqlText.Length;

            foreach (var element in elementList)
            {
                if (sqlText.Length != len)
                {
                    sqlText.Append(",");
                }
                sqlText.Append("[").Append(element.Element.FieldCode).Append("]");
            }

            sqlText.Append(" FROM {3} where ");
            if (ontology.Ontology.IsLogicalDeletionEntity)
            {
                sqlText.Append("DeletionStateCode = 0");
            }
            else
            {
                sqlText.Append("1 = 1");
            }
            if (!string.IsNullOrEmpty(sqlPredicateString))
            {
                sqlText.Append(" and ").Append(sqlPredicateString);
            }
            sqlText.Append(") a WHERE a.RowNumber > {4}");
            string sqlQuery = string.Format(
                sqlText.ToString(),
                pagingData.PageSize.ToString(CultureInfo.InvariantCulture),
                pagingData.SortField,
                pagingData.SortOrder,
                tableName,
                (pagingData.SkipCount).ToString(CultureInfo.InvariantCulture));

            pagingData.Count(() =>
            {
                string where    = ontology.Ontology.IsLogicalDeletionEntity ? "where DeletionStateCode = 0" : "";
                string sqlCount = string.Format("select count(1) from {0} {1}", tableName, where);
                if (!string.IsNullOrEmpty(sqlPredicateString))
                {
                    sqlCount = sqlCount + " and " + sqlPredicateString;
                }
                return((int)db.ExecuteScalar(
                           sqlCount, pQueryList.Select(p => ((ICloneable)p).Clone()).Cast <DbParameter>().ToArray()));
            });

            var list   = new List <object[]>();
            var reader = db.ExecuteReader(sqlQuery, pQueryList.ToArray());

            while (reader.Read())
            {
                var values = new object[elementList.Count];
                for (int i = 0; i < elementList.Count; i++)
                {
                    values[i] = reader.GetValue(i);
                }
                list.Add(values);
            }
            reader.Close();

            return(new DataTuple(elementList, list.ToArray()));
        }
 public async Task <ServiceResult <PagedList <QueryPostForAdminDto> > > QueryPostsForAdminAsync([FromQuery] PagingInput input)
 {
     return(await _blogService.QueryPostsForAdminAsync(input));
 }
Exemple #44
0
        public ActionResult GetPlistBatches(GetPlistBatchs input)
        {
            if (!ModelState.IsValid)
            {
                return ModelState.ToJsonResult();
            }
            Guid? ontologyId = null;
            if (string.IsNullOrEmpty(input.OntologyCode))
            {
                ontologyId = null;
            }
            else
            {
                OntologyDescriptor ontology;
                if (!AcDomain.NodeHost.Ontologies.TryGetOntology(input.OntologyCode, out ontology))
                {
                    throw new ValidationException("意外的本体码" + input.OntologyCode);
                }
                ontologyId = ontology.Ontology.Id;
            }
            var pagingData = new PagingInput(input.PageIndex
                , input.PageSize, input.SortField, input.SortOrder);
            if (ontologyId != null)
            {
                input.Filters.Insert(0, FilterData.EQ("OntologyId", ontologyId.Value));
            }
            var data = GetRequiredService<IBatchQuery>().GetPlist(base.EntityType, () =>
            {
                RdbDescriptor rdb;
                if (!AcDomain.Rdbs.TryDb(base.EntityType.DatabaseId, out rdb))
                {
                    throw new AnycmdException("意外配置的Batch实体类型对象数据库标识" + base.EntityType.DatabaseId);
                }
                List<DbParameter> ps;
                var filterString = new SqlFilterStringBuilder().FilterString(rdb, input.Filters, "a", out ps);
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString = " where " + filterString;
                }
                return new SqlFilter(filterString, ps.ToArray());
            }, pagingData);

            Debug.Assert(pagingData.Total != null, "pagingData.Total != null");
            return this.JsonResult(new MiniGrid<BatchTr> { total = pagingData.Total.Value, data = data.Select(a => new BatchTr(a)) });
        }