예제 #1
0
        public ActionResult GetPlistPlugins(GetPlistResult requestModel)
        {
            if (!ModelState.IsValid)
            {
                return(ModelState.ToJsonResult());
            }
            var dataDics = GetRequiredService <IPluginQuery>().GetPlist(base.EntityType, () =>
            {
                RdbDescriptor rdb;
                if (!AcDomain.RdbSet.TryDb(base.EntityType.DatabaseId, out rdb))
                {
                    throw new GeneralException("意外配置的Plugin实体类型对象数据库标识" + base.EntityType.DatabaseId);
                }
                List <DbParameter> ps;
                var filterString = new SqlFilterStringBuilder().FilterString(rdb, requestModel.Filters, "a", out ps);
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString = " where " + filterString;
                }
                return(new SqlFilter(filterString, ps.ToArray()));
            }, requestModel);

            Debug.Assert(requestModel.Total != null, "requestModel.Total != null");
            var data = new MiniGrid <Dictionary <string, object> > {
                total = requestModel.Total.Value, data = dataDics
            };

            return(this.JsonResult(data));
        }
예제 #2
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))
            }));
        }
예제 #3
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));
        }
예제 #4
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);
 }
예제 #5
0
        public ActionResult GetPlistStateCodes(GetPlistStateCodes requestModel)
        {
            if (!ModelState.IsValid)
            {
                return ModelState.ToJsonResult();
            }
            var dataDics = GetRequiredService<IStateCodeQuery>().GetPlist(base.EntityType, () =>
            {
                RdbDescriptor rdb;
                if (!AcDomain.Rdbs.TryDb(base.EntityType.DatabaseId, out rdb))
                {
                    throw new AnycmdException("意外配置的StateCode实体类型对象数据库标识" + base.EntityType.DatabaseId);
                }
                List<DbParameter> ps;
                var filterString = new SqlFilterStringBuilder().FilterString(rdb, requestModel.Filters, "a", out ps);
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString = " where " + filterString;
                }
                return new SqlFilter(filterString, ps.ToArray());
            }, requestModel);
            Debug.Assert(requestModel.Total != null, "requestModel.Total != null");
            var data = new MiniGrid<Dictionary<string, object>> { total = requestModel.Total.Value, data = dataDics };

            return this.JsonResult(data);
        }
예제 #6
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)) });
        }