/// <summary>
        /// Execute query for results binding to dynamic page grid.
        /// </summary>
        /// <param name="parameter">Query parameter.</param>
        /// <returns>Returns query results.</returns>
        public override QueryResults Query(QueryParameter parameter)
        {
            IEnumerable<IFieldMetadata> fieldMetadataEnumerable = metadataApi.GetFields((Guid)applicationContext.TempVariables["MetadataDataTypeId"]);
            if (parameter.SortExpression != null)
                fieldMetadataEnumerable = fieldMetadataEnumerable.AsQueryable().OrderBy(parameter.SortExpression.Compile());

            return new QueryResults(fieldMetadataEnumerable.Count(), fieldMetadataEnumerable);
        }
        public void Should_Return_Zero_When_Are_Equal()
        {
            var p1 = new QueryParameter("f", "x");
            var p2 = new QueryParameter("f", "x");

            var queryComparer = new QueryParameterComparer();

            Assert.That(queryComparer.Compare(p1, p2), Is.EqualTo(0));
        }
        public void Should_Return_Negative_When_First_Is_Less_Than_Second_With_The_Same_Key()
        {
            var p1 = new QueryParameter("a", "1");
            var p2 = new QueryParameter("a", "2");

            var queryComparer = new QueryParameterComparer();

            Assert.That(queryComparer.Compare(p1, p2), Is.LessThan(0));
        }
        public void Should_Return_Positive_When_First_Is_Greater_Than_Second_With_Same_Key()
        {
            var p1 = new QueryParameter("f", "z");
            var p2 = new QueryParameter("f", "a");

            var queryComparer = new QueryParameterComparer();

            Assert.That(queryComparer.Compare(p1, p2), Is.GreaterThan(0));
        }
Example #5
0
        public ValueParameter GetValue(QueryParameter aParameter)
        {
            foreach (var opcTag in opcTags) {
                if (opcTag.Name == aParameter.OpcTag) {
                    var valueParameter = new ValueParameter();
                    valueParameter.Name = aParameter.Name;
                    valueParameter.Value = Convert.ToDouble(opcTag.ReadCurrentValue());
                    return valueParameter;
                }
            }

            throw new ArgumentException("Не найден ОРС тег " + aParameter.OpcTag);
        }
 public void describe_encode()
 {
     it["should encode the query parameter with HttpUtility.UrlEncode functionality"] = () =>
     {
         var encoder = new HttpParameterEncoder();
         var parameter = new QueryParameter
         {
             Name = "key",
             Value = "some value"
         };
         var result = encoder.Encode(parameter);
         result.should_be("key=some+value");
     };
 }
        /// <summary>
        /// Execute query for results binding to dynamic page grid.
        /// </summary>
        /// <param name="parameter">Query parameter.</param>
        /// <returns>Returns query results.</returns>
        public override QueryResults Query(QueryParameter parameter)
        {
            string domain = authenticationContext.TempVariables["Domain.Value"] as string;
            int recordCount;
            LinqPredicate predicate = LinqPredicate.Concat(parameter.Expressions.Compile(), new LinqPredicate("Domain=@0", domain));

            string sortingExpression = null;
            if (parameter.SortExpression != null)
                sortingExpression = parameter.SortExpression.Compile();

            if (Kit.IsEmpty(sortingExpression))
                sortingExpression = "RoleName ASC";

            IEnumerable<RoleObject> roleObjects = roleApi.FindRoles(predicate, sortingExpression, parameter.PageIndex, parameter.PageSize, out recordCount);
            return new QueryResults(recordCount, roleObjects);
        }
        public void _002_Case_of_SecondaryKeyQuery()
        {
            var sut = new QueryParameter<Employee>(e => e.FirstName == "Ryoma");
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            var filer = sut.ApiFilter[0][0];
            Assert.Equal("FirstName", filer.Field.Name);
            Assert.Equal("Ryoma", filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            sut = new QueryParameter<Employee>(e => e.LastName != "Sakamoto");
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("LastName", filer.Field.Name);
            Assert.Equal("Sakamoto", filer.Value);
            Assert.Equal(FilterType.NotEqual, filer.Type);

            sut = new QueryParameter<Employee>(e => e.LastName.GreaterThanOrEqual("S") && e.LastName.LessThan("T"));
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(2, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("LastName", filer.Field.Name);
            Assert.Equal("S", filer.Value);
            Assert.Equal(FilterType.GreaterThanOrEqual, filer.Type);

            filer = sut.ApiFilter[1][0];
            Assert.Equal("LastName", filer.Field.Name);
            Assert.Equal("T", filer.Value);
            Assert.Equal(FilterType.LessThan, filer.Type);

            sut = new QueryParameter<Employee>(e => e.FirstName == e.LastName);
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("FirstName", filer.Field.Name);
            Assert.Equal("LastName", filer.ComparedField.Name);
            Assert.Equal(FilterType.Equal, filer.Type);
        }
        /// <summary>
        /// Execute query for results binding to dynamic page grid.
        /// </summary>
        /// <param name="parameter">Query parameter.</param>
        /// <returns>Returns query results.</returns>
        public override QueryResults Query(QueryParameter parameter)
        {
            LinqPredicate predicate = LinqPredicate.Concat(parameter.Expressions.Compile(), this.CreateCustomQuery(parameter));

            int recordCount;
            string sortingExpression = null;
            if (parameter.SortExpression != null)
                sortingExpression = parameter.SortExpression.Compile();
            if (Kit.IsEmpty(sortingExpression))
                sortingExpression = "LastUpdatedDate ASC";

            string hierarchyType = authenticationContext.TempVariables["HierarchyType"] as string;
            LinqPredicate hierarchyTypePredicate = new LinqPredicate("HierarchyType=@0", hierarchyType);
            predicate = hierarchyTypePredicate.Add(predicate);

            IEnumerable<HierarchyDataObject> hierarchyDataObjects = hierarchyApi.FindHierarchyData(predicate, sortingExpression, parameter.PageIndex, parameter.PageSize, out recordCount);
            return new QueryResults(recordCount, hierarchyDataObjects);
        }
        public void _001_Case_of_PrimaryKeyQuery()
        {
            var sut = new QueryParameter<Employee>(e => e.Id == 10);
            Assert.Equal(0, sut.Key.KeyNumber);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            var filer = sut.ApiFilter[0][0];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(10, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            sut = new QueryParameter<Employee>(e => e.Id != 3);
            Assert.Equal(0, sut.Key.KeyNumber);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(3, filer.Value);
            Assert.Equal(FilterType.NotEqual, filer.Type);

            sut = new QueryParameter<Employee>(e => e.Id >= 4 && e.Id < 8);
            Assert.Equal(0, sut.Key.KeyNumber);
            Assert.Equal(2, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(4, filer.Value);
            Assert.Equal(FilterType.GreaterThanOrEqual, filer.Type);

            filer = sut.ApiFilter[1][0];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(8, filer.Value);
            Assert.Equal(FilterType.LessThan, filer.Type);
        }
Example #11
0
 private void ClearDisplayFilter()
 {
     if (treeList_StationLayer.Visible)
     {
         var layers = _stationLayers[_blinkLayerName];
             foreach (var layer in layers)
             {
                 var queryParameter = new QueryParameter { AttributeFilter = "" };
                 layer.DisplayFilter = queryParameter;
             }
     }
     else
     {
         var layers = _siteLayers[_blinkLayerName];
             foreach (var layer in layers)
             {
                 var queryParameter = new QueryParameter { AttributeFilter = "" };
                 layer.DisplayFilter = queryParameter;
             }
     }
     _currentMapCtl.Map.Refresh();
 }
 /// <summary>
 /// 返回满足查询条件的业务单位类型,该表不做显示维护实体列表
 /// </summary>
 /// <param name="param">查询条件</param>
 /// <returns>
 /// 业务单位类型,该表不做显示维护实体列表</returns>
 public IList <Sys_BusiUnitType> GetSys_BusiUnitTypes(QueryParameter param)
 {
     return(this._sys_BusiUnitTypeDAO.GetSys_BusiUnitTypes(param));
 }
        private static QueryParameter GetRuneDefaultQueryParameter()
        {
            var queryParameter = new QueryParameter("runeListData", "all");

            return(queryParameter);
        }
        public void TestQuery()
        {
            HierarchyDataManagement page = new HierarchyDataManagement();

            DynamicPageProxy proxy = new DynamicPageProxy(page);

            IHierarchyApi hierarchyApi = SpringContext.Current.GetObject<IHierarchyApi>();

            using (var httpEnv = new HttpEnvironment())
            {
                Guid guid = Guid.NewGuid();
                string surfix = guid.ToString().Substring(0, 5);

                HierarchyDataObject obj = new HierarchyDataObject()
                {

                    HierarchyType = "Department",
                    Name = "HierarchyType" + surfix,
                    Description = "HierarchyType" + surfix

                };

                hierarchyApi.Save(obj);
                httpEnv.SetRequestUrl(@"/HierarchyDataDetailPanel/DynamicPage.svc?HierarchyType=Department");

                QueryParameterExpression expression = new QueryParameterExpression("Name", QueryFieldOperators.Equal, "HierarchyType" + surfix);

                SortExpression sort = new SortExpression("Name");

                QueryParameter parameters = new QueryParameter()
                {
                    //Expressions = express,
                    PageIndex = 0,
                    PageSize = 10,
                    SortExpression = sort
                };

                parameters.Expressions.Add(expression);

                QueryResults results = proxy.Query(parameters);

                foreach (var result in results.Results)
                {
                    Assert.AreEqual(DataBinder.Eval(result, "Name"), "HierarchyType" + surfix);
                }
            }
        }
        public void TestQuery()
        {
            ConcreteDataManagement page = new ConcreteDataManagement();

            DynamicPageProxy proxy = new DynamicPageProxy(page);

            IConcreteDataApi concreteDataApi = SpringContext.Current.GetObject<IConcreteDataApi>();

            using (var httpEnv = new HttpEnvironment())
            {
                #region Create Data
                Guid guid = Guid.NewGuid();
                string surfix = guid.ToString().Substring(0, 5);
                ConcreteDataObject testConcreteData = new ConcreteDataObject()
                {
                    Name = "concrete" + surfix,
                    Value = "concrete" + surfix,
                    Type = "Department",
                    DeleteStatus = DeleteStatus.NotDeleted
                };

                concreteDataApi.Save(testConcreteData);
                ids.Add(testConcreteData.ConcreteDataId);
                #endregion

                httpEnv.SetRequestUrl(@"/ConcreteDataDetailPanel/DynamicPage.svc?ConcreteDataType=Department");

                QueryParameterExpression expression = new QueryParameterExpression("Name", QueryFieldOperators.Equal, "concrete" + surfix);

                SortExpression sort = new SortExpression("Name");

                QueryParameter parameters = new QueryParameter()
                {
                    //Expressions = express,
                    PageIndex = 0,
                    PageSize = 10,
                    SortExpression = sort
                };

                parameters.Expressions.Add(expression);

                QueryResults results = proxy.Query(parameters);

                foreach (var result in results.Results)
                {
                    Assert.AreEqual(DataBinder.Eval(result, "Name"), "concrete" + surfix);
                }
            }
        }
Example #16
0
 // @Override
 public SatisfiedWhereBuilder eq(QueryParameter queryParameter)
 {
     return(isEquals(queryParameter));
 }
Example #17
0
        public Object DraftListQuery(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var myfilter = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            int pageindex = para.page ?? 1;
            int pagesize  = para.count ?? 25;

            DBHelper      db = new DBHelper();
            StringBuilder sb = new StringBuilder();

            sb.Append(" where (content->>'auditstatus')::int=0");

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field == "startdate")
                {
                    sb.AppendFormat(" and content->>'billdate'>='{0}'", f);
                }
                else if (field == "enddate")
                {
                    sb.AppendFormat(" and content->>'billdate'<='{0}'", f);
                }
                else if (field == "billname")
                {
                    sb.AppendFormat(" and content->>'billname' = '{0}'", f);
                }
                else if (field == "billcode")
                {
                    sb.AppendFormat(" and content->>'billcode' ilike '%{0}%'", f);
                }
                else if (field == "productname")
                {
                    DataTable dt  = db.QueryTable("select id from product where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and exists(select 1 from jsonb_array_elements(content->'details')  t(x) where (x->>'productid')::int in ({0}))", ids);
                }
                else if (field == "vendorname")
                {
                    DataTable dt  = db.QueryTable("select id from vendor where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'vendorid')::int in ({0})", ids);
                }
                else if (field == "customername")
                {
                    DataTable dt  = db.QueryTable("select id from customer where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'customerid')::int in ({0})", ids);
                }
                else if (field == "employeename")
                {
                    DataTable dt  = db.QueryTable("select id from employee where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'employeeid')::int in ({0})", ids);
                }
                else if (field == "makername")
                {
                    DataTable dt  = db.QueryTable("select id from employee where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'makerid')::int in ({0})", ids);
                }
                else if (field == "stockname")
                {
                    DataTable dt  = db.QueryTable("select id from stock where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'stockid')::int in ({0})", ids);
                }
                else if (field == "comment")
                {
                    sb.AppendFormat(" and content->>'comment' ilike '%{0}%'", f);
                }
                else if (field == "detailcomment")
                {
                    sb.AppendFormat(" and exists(select 1 from jsonb_array_elements(content->'details')  t(x) where (x->>'comment') ilike '%{0}%')", f);
                }
            }

            StringBuilder sborder = new StringBuilder();

            sborder.Append(" order by content->>'billdate' desc,id desc ");


            sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);

            string sql = "select *  from bill "
                         + sb.ToString()
                         + sborder.ToString();

            string sqlCount = "select count(0) as cnt from bill "
                              + sb.ToString();


            string sqlTotalSum = "select coalesce(sum((content->>'total')::decimal),0) as total " +
                                 "from  bill " + sb.ToString();


            int     recordcount = db.Count(sqlCount);
            decimal totalsum    = Convert.ToDecimal(db.Scalar(sqlTotalSum));

            List <TableModel> list = db.Where(sql);

            foreach (var item in list)
            {
                item.content.Add("makername", db.First("employee", item.content.Value <int>("makerid")).content.Value <string>("name"));
                string wldw = "";
                if (item.content["vendorid"] != null)
                {
                    wldw = db.First("vendor", item.content.Value <int>("vendorid")).content.Value <string>("name");
                }
                else if (item.content["customerid"] != null)
                {
                    wldw = db.First("customer", item.content.Value <int>("customerid")).content.Value <string>("name");
                }

                item.content.Add("wldw", wldw);
                item.content.Add("employeename", db.First("employee", item.content.Value <int>("employeeid")).content.Value <string>("name"));
                item.content.Add("stockname", db.First("stock", item.content.Value <int>("stockid")).content.Value <string>("name"));
            }

            bool showcost = PluginContext.Current.Account.IsAllowed("showcost");

            return(new
            {
                resulttotal = recordcount,
                totalsum = totalsum,
                data = list,
                showcost = showcost
            });
        }
 public CovidRecord[] Get([FromQuery] QueryParameter parameters)
 {
     return(_countryService.GetTopCount("newcases", parameters.Top, parameters.Year, parameters.Month, parameters.Day));
 }
Example #19
0
        public Object LoadBillQuery(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var myfilter = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            int pageindex = para.page ?? 1;
            int pagesize  = para.count ?? 25;

            DBHelper      db = new DBHelper();
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(" where content->>'billname'='{0}'", billname);

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field == "startdate")
                {
                    sb.AppendFormat(" and content->>'billdate'>='{0}'", f);
                }
                else if (field == "enddate")
                {
                    sb.AppendFormat(" and content->>'billdate'<='{0}'", f);
                }
                else if (field == "billcode")
                {
                    sb.AppendFormat(" and content->>'billcode' ilike '%{0}%'", f);
                }
                else if (field == "vendorname")
                {
                    DataTable dt  = db.QueryTable("select id from vendor where content->>'name' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'vendorid')::int in ({0})", ids);
                }
                else if (field == "employeename")
                {
                    DataTable dt  = db.QueryTable("select id from employee where content->>'name' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and (content->>'employeeid')::int in ({0})", ids);
                }
                else if (field == "comment")
                {
                    sb.AppendFormat(" and content->>'comment' ilike '%{0}%'", f);
                }
                else if (field == "status")
                {
                    if (f == "draft")
                    {
                        sb.Append(" and (content->>'auditstatus')::int=0");
                    }
                    else if (f == "audited")
                    {
                        sb.Append(" and (content->>'auditstatus')::int=1");
                    }
                }
            }

            StringBuilder sborder = new StringBuilder();

            sborder.Append(" order by content->>'billdate' desc,id desc ");


            sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);

            string sql = "select *  from bill "
                         + sb.ToString()
                         + sborder.ToString();

            string sqlCount = "select count(0) as cnt from bill "
                              + sb.ToString();

            int recordcount        = db.Count(sqlCount);
            List <TableModel> list = db.Where(sql);

            foreach (var item in list)
            {
                item.content.Add("makername", db.First("employee", item.content.Value <int>("makerid")).content.Value <string>("name"));
                item.content.Add("vendorname", db.First("vendor", item.content.Value <int>("vendorid")).content.Value <string>("name"));
                item.content.Add("employeename", db.First("employee", item.content.Value <int>("employeeid")).content.Value <string>("name"));
            }

            return(new { resulttotal = recordcount, data = list });
        }
Example #20
0
 public object ConvertDataValueForThisProvider(QueryParameter parameter)
 {
     return(parameter.ParameterValue == null ? DBNull.Value : SchemaGenerator.ConvertDataValueForThisProvider(parameter));
 }
Example #21
0
        public Object TimespanPurchaseReport(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var mysorting = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.sorting);
            var myfilter  = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            int pageindex = para.page ?? 1;
            int pagesize  = para.count ?? 25;

            DBHelper      db = new DBHelper();
            StringBuilder sb = new StringBuilder();

            sb.Append(" where 1=1 ");

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field == "startdate")
                {
                    sb.AppendFormat(" and billdate>='{0}'", f);
                }
                else if (field == "enddate")
                {
                    sb.AppendFormat(" and billdate<='{0}'", f);
                }
                else if (field == "categoryid")
                {
                    if (f != "0")
                    {
                        var ids = CategoryHelper.GetChildrenIds(Convert.ToInt32(f));
                        ids.Add(Convert.ToInt32(f));
                        string    idsfilter = ids.Select(c => c.ToString()).Aggregate((a, b) => a + "," + b);
                        DataTable dt        = db.QueryTable("select id from product where (content->>'categoryid')::int in (" + idsfilter + ")");
                        idsfilter = dt.GetIds();
                        sb.AppendFormat(" and productid in ({0})", idsfilter);
                    }
                }
                else if (field == "productname")
                {
                    DataTable dt  = db.QueryTable("select id from product where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and productid in ({0})", ids);
                }
                else if (field == "vendorname")
                {
                    DataTable dt  = db.QueryTable("select id from vendor where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and vendorid in ({0})", ids);
                }
                else if (field == "employeename")
                {
                    DataTable dt  = db.QueryTable("select id from employee where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and employeeid in ({0})", ids);
                }
                else if (field == "stockname")
                {
                    DataTable dt  = db.QueryTable("select id from stock where content->>'name' ilike '%" + f + "%' or content->>'code' ilike '%" + f + "%'");
                    string    ids = dt.GetIds();
                    sb.AppendFormat(" and stockid in ({0})", ids);
                }
            }

            StringBuilder sborder = new StringBuilder();

            if (mysorting.Count > 0)
            {
                sborder.Append(" order by ");
            }
            int i = 0;

            foreach (string field in mysorting.Keys)
            {
                i++;
                sborder.AppendFormat(" {0} {1} {2}", field.ToLower(), mysorting[field], i == mysorting.Count ? "" : ",");
            }

            if (mysorting.Count == 0)
            {
                sborder.Append(" order by productcode ");
            }


            sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);

            string cte = "with cte as (select mvw_purchasebill.* from mvw_purchasebill "
                         + "inner join stock on mvw_purchasebill.stockid=stock.id "
                         + "inner join vendor on mvw_purchasebill.vendorid=vendor.id "
                         + "inner join product on mvw_purchasebill.productid=product.id) ";

            string sql = cte +
                         "select productid,productcode,productname,producttype,productstandard,productbarcode,productunit,productarea," +
                         "sum(case when billname='purchasebill' then qty else -qty end)  as qty," +
                         "sum(case when billname='purchasebill' then total else -total end) as total," +
                         "sum(case when billname='purchasebill' then discounttotal else -discounttotal end) as discounttotal," +
                         "sum(case when billname='purchasebill' then discounttotal else -discounttotal end)-sum(case when billname='purchasebill' then total else -total end) as taxtotal," +
                         "sum(case when billname='purchasebill' then total else -total end) /sum(case when billname='purchasebill' then qty else -qty end) as price," +
                         "sum(case when billname='purchasebill' then discounttotal else -discounttotal end) /sum(case when billname='purchasebill' then qty else -qty end) as discountprice " +
                         "from cte " +
                         sb.ToString() +
                         "group by productid,productcode,productname,producttype,productstandard,productbarcode,productunit,productarea " +
                         sborder.ToString();

            //string sqlCount = "with cte as (select productid from mvw_purchasebill "
            //                    + sb.ToString()
            //                    + " group by productid) select count(0) from cte";

            string sqlCount = cte
                              + "select count(0) from (select productid from cte "
                              + sb.ToString()
                              + " group by productid) as t";


            string sqlSum = cte +
                            "select coalesce(sum(case when billname='purchasebill' then qty else -qty end),0) as qty," +
                            "coalesce(sum(case when billname='purchasebill' then total else -total end),0) as total," +
                            "coalesce(sum(case when billname='purchasebill' then discounttotal else -discounttotal end),0) as discounttotal," +
                            "coalesce(sum(case when billname='purchasebill' then discounttotal else -discounttotal end)-sum(case when billname='purchasebill' then total else -total end),0) as taxtotal " +
                            "from cte " +
                            sb.ToString();

            int       recordcount = db.Count(sqlCount);
            DataTable dtSum       = db.QueryTable(sqlSum);

            decimal qtysum           = Convert.ToDecimal(dtSum.Rows[0]["qty"]);
            decimal totalsum         = Convert.ToDecimal(dtSum.Rows[0]["total"]);
            decimal discounttotalsum = Convert.ToDecimal(dtSum.Rows[0]["discounttotal"]);
            decimal taxtotalsum      = Convert.ToDecimal(dtSum.Rows[0]["taxtotal"]);

            DataTable list = db.QueryTable(sql);

            return(new
            {
                resulttotal = recordcount,
                qtysum = qtysum,
                totalsum = totalsum,
                discounttotalsum = discounttotalsum,
                taxtotalsum = taxtotalsum,

                data = list
            });
        }
        public void TestQuery()
        {
            OrganizationTypeManagement page = new OrganizationTypeManagement();

            DynamicPageProxy proxy = new DynamicPageProxy(page);

            IOrganizationApi organizationApi = SpringContext.Current.GetObject<IOrganizationApi>();

            using (var httpEnv = new HttpEnvironment())
            {
                httpEnv.SetRequestUrl(@"/OrganizationTypeManagement/DynamicPage.svc?Domain=Department");
                #region Create Data
                Guid guid = Guid.NewGuid();
                string surfix = guid.ToString().Substring(0, 5);
                OrganizationTypeObject testOrganizationType = new OrganizationTypeObject()
                {
                    Name = "78903" + surfix,
                    Description = "testOrganizationTypeUpdate" + surfix,
                    Domain = "Department",
                    Predefined = false,
                    DeleteStatus = DeleteStatus.NotDeleted
                };

                organizationApi.Save(testOrganizationType);
                ids.Add(testOrganizationType.OrganizationTypeId);
                #endregion

                QueryParameterExpression expression = new QueryParameterExpression("Name", QueryFieldOperators.Equal, "78903" + surfix);

                SortExpression sort = new SortExpression("Name");

                QueryParameter parameters = new QueryParameter()
                {
                    //Expressions = express,
                    PageIndex = 0,
                    PageSize = 10,
                    SortExpression = sort
                };

                parameters.Expressions.Add(expression);

                QueryResults results = proxy.Query(parameters);

                foreach (var result in results.Results)
                {
                    Assert.AreEqual(DataBinder.Eval(result, "Name"), "78903" + surfix);
                }
            }
        }
Example #23
0
        private SqlStatement ShowSchemaTables(string schema)
        {
            var sql = "  SELECT \"Tables.TABLE_NAME\" AS \"table_name\", " +
                      "         I_PRIVILEGE_STRING(\"agg_priv_bit\") AS \"user_privs\", " +
                      "         \"Tables.TABLE_TYPE\" as \"table_type\" " +
                      "    FROM " + InformationSchema.Tables + ", " +
                      "         ( SELECT AGGOR(\"priv_bit\") agg_priv_bit, " +
                      "                  \"object\", \"name\" " +
                      "             FROM " + InformationSchema.ThisUserSimpleGrantViewName +
                      "            WHERE \"object\" = " + ((int)DbObjectType.Table) +
                      "         GROUP BY \"name\" )" +
                      "   WHERE \"Tables.TABLE_SCHEMA\" = ? " +
                      "     AND CONCAT(\"Tables.TABLE_SCHEMA\", '.', \"Tables.TABLE_NAME\") = \"name\" " +
                      "ORDER BY Tables.TABLE_NAME";

            var param = new QueryParameter(PrimitiveTypes.String(), new SqlString(schema));
            return Show(sql, param);
        }
Example #24
0
 // @Override
 public SatisfiedWhereBuilder differentFrom(QueryParameter queryParameter)
 {
     return(ne(queryParameter));
 }
		/// <summary>
		/// 在查询结果面板上初始化查询结果列表
		/// </summary>
		/// <param name="type">查询方式,默认为属性查询-Attribute,空间查询-Spatial</param>
		private void ExecuteQueryListBox(string type, Point3Ds TempPoints3Ds=null, string actionStr=null)
		{
			string layerName = "";
			if (this.QueryLayerList.Items.Count > 0)
			{
				layerName = this.QueryLayerList.SelectedValue.ToString();
			}
			
			if (layerName != "")//关键字为空时查询全部要素
			{
				string queryTxt = this.QueryNameTxt.Text.Trim();
				Workspace ws = MainWindow.m_workspace;
				if (ws != null)
				{
					string sourceName = ConfigurationManager.AppSettings.Get(queryDataSource);
					Datasource dSource = ws.Datasources[sourceName];
					if (dSource != null)
					{
						DatasetVector dSetV = (DatasetVector)dSource.Datasets[layerName];
						if (dSetV != null)
						{
							string fieldName = ConfigurationManager.AppSettings.Get(queryNameField);
							string fieldCode = ConfigurationManager.AppSettings.Get(queryCodeField);
							Recordset recordset = null;

							if (type != ATTRIBUTE_QUERY)
							{
								double queryBuffer = 0.0;
								SuperMap.Data.Geometry queryGeometry = null;
								
								switch (actionStr)
								{
									case "createpoint":
                                        queryBuffer = 0.01;
										if (TempPoints3Ds.Count == 1)
										{
											GeoPoint geoPoint = new GeoPoint(TempPoints3Ds[0].X, TempPoints3Ds[0].Y);
											queryGeometry = geoPoint;
										}
										break;
									case "createline":
										if (TempPoints3Ds.Count == 2)
										{
											Point2D point2D = new Point2D(TempPoints3Ds[0].X, TempPoints3Ds[0].Y);
                                            Point2D point2D1 = new Point2D(TempPoints3Ds[1].X, TempPoints3Ds[1].Y);
                                            double radius = Geometrist.Distance(new GeoPoint(point2D), new GeoPoint(point2D1));
                                            GeoCircle geoCircle = new GeoCircle(point2D, radius);
                                            GeoRegion geoRegion = geoCircle.ConvertToRegion(72);
                                            queryGeometry = geoRegion;
										}
										break;
									case "createpolygon":
										if (TempPoints3Ds.Count > 2)
										{
											Point2Ds tempPoint2Ds = new Point2Ds();
											for (int i = 0; i < TempPoints3Ds.Count; i++)
											{
												tempPoint2Ds.Add(new Point2D(TempPoints3Ds[i].X, TempPoints3Ds[i].Y));
											}
											GeoRegion geoRegion = new GeoRegion(tempPoint2Ds);
											queryGeometry = geoRegion;
										}
										break;
									default:
										break;
								}
                                if (queryGeometry != null)
                                {
                                    recordset = dSetV.Query(queryGeometry, queryBuffer, SuperMap.Data.CursorType.Static);
                                }
							}
							else
							{
								QueryParameter queryParameter = new QueryParameter();
								queryParameter.CursorType = SuperMap.Data.CursorType.Static;
								queryParameter.HasGeometry = true;
								if (this.QueryNameTxt.Text.Trim() != "")
								{
									queryParameter.AttributeFilter = fieldName + " like '%" + queryTxt + "%'";
								}

								recordset = dSetV.Query(queryParameter);
							}
							
							if (recordset != null && recordset.RecordCount > 0)
							{
								ObservableCollection<QueryRecordVO> recordList = SysModelLocator.getInstance().recordList;
								recordList.Clear();
								bool isExist = false;
								FieldInfos fis = recordset.GetFieldInfos();
								for (int j = 0; j < fis.Count; j++)
								{
									FieldInfo fi = fis[j];
									if (fi != null)
									{
										if (fi.Name.ToString().ToUpper() == fieldName)
										{
											isExist = true;
											break;
										}
										continue;
									}
								}

								if (isExist)
								{
									for (recordset.MoveFirst(); recordset.IsEOF == false; recordset.MoveNext())
									{
										QueryRecordVO qVO = new QueryRecordVO();
										qVO.RecordLayerId = layerName;
										qVO.RecordName = recordset.GetFieldValue(fieldName).ToString();
										qVO.RecordIndex = recordset.GetFieldValue(fieldCode).ToString();
										qVO.RecordCenterX = recordset.GetGeometry().InnerPoint.X.ToString();
										qVO.RecordCenterY = recordset.GetGeometry().InnerPoint.Y.ToString();
										recordList.Add(qVO);
									}
									this.QueryListBox.ItemsSource = recordList;
									this.QueryInfo.Text = "查询结果合计:" + recordList.Count + "条";
								}
								else
								{
									this.QueryListBox.ItemsSource = null;
									this.QueryInfo.Text = "";
								}
							}
							else
							{
                                SysModelLocator.getInstance().recordList.Clear();
								this.QueryListBox.ItemsSource = null;
								this.QueryInfo.Text = "查询结果合计:0条";
							}
						}
					}
				}
			}
		}
Example #26
0
 // @Override
 public SatisfiedWhereBuilder greaterThan(QueryParameter queryParameter)
 {
     return(gt(queryParameter));
 }
Example #27
0
 // @Override
 public SatisfiedWhereBuilder lessThan(QueryParameter queryParameter)
 {
     return(lt(queryParameter));
 }
        /// <summary>
        /// Begins the process of importing records from the data package into the destination form
        /// </summary>
        /// <param name="form">The form that will receive the data</param>
        /// <param name="formNode">The XmlNode representing the form</param>
        /// <param name="records">The data to be imported</param>
        protected override void ImportRecords(View form, XmlNode formNode, List <PackageFieldData> records)
        {
            if (!IsUsingCustomMatchkeys) // Calling class should instantiate normal data packager if custom keys aren't used
            {
                throw new ApplicationException("This class should not be used without custom match keys.");
            }

            ImportInfo.RecordsAppended.Add(form, 0);
            ImportInfo.RecordsUpdated.Add(form, 0);

            IDbDriver destinationDb = DestinationProject.CollectedData.GetDatabase();

            DataTable destinationKeyTable = new DataTable();

            destinationKeyTable.Columns.Add(new DataColumn("GlobalRecordId", typeof(string)));
            destinationKeyTable.Columns.Add(new DataColumn("Update", typeof(bool)));
            destinationKeyTable.Columns.Add(new DataColumn("KeyDictionary", typeof(Dictionary <Field, object>)));

            DataColumn [] primaryKey = new DataColumn[1];
            primaryKey[0] = destinationKeyTable.Columns["GlobalRecordId"];
            destinationKeyTable.PrimaryKey = primaryKey;

            WordBuilder wb = new WordBuilder(",");

            wb.Add("t.GlobalRecordId");
            foreach (Field field in KeyFields)
            {
                wb.Add(field.Name);
            }

            Query selectQuery = destinationDb.CreateQuery("SELECT " + wb.ToString() + " " + form.FromViewSQL);

            using (IDataReader keyTableReader = destinationDb.ExecuteReader(selectQuery))
            {
                while (keyTableReader.Read())
                {
                    string guid = keyTableReader["GlobalRecordId"].ToString();
                    Dictionary <Field, object> keys = new Dictionary <Field, object>();

                    foreach (Field field in KeyFields)
                    {
                        keys.Add(field, keyTableReader[field.Name]);
                    }

                    destinationKeyTable.Rows.Add(guid, true, keys);
                }
            }

            var query = from record in records
                        group record by record.RecordGUID;

            IEnumerable <IEnumerable <PackageFieldData> > fieldDataLists = query as IEnumerable <IEnumerable <PackageFieldData> >;

            foreach (IEnumerable <PackageFieldData> fieldDataList in fieldDataLists)
            {
                PackageFieldData fieldData = fieldDataList.First();
                bool             found     = false;

                foreach (DataRow row in destinationKeyTable.Rows)
                {
                    Dictionary <Field, object> keyDictionary = row["KeyDictionary"] as Dictionary <Field, object>;

                    if (AreKeyFieldDictionariesEqual(keyDictionary, fieldData.KeyValues))
                    {
                        found = true;
                        if (!Update)
                        {
                            row["Update"] = false;
                        }
                        else
                        {
                            ImportInfo.TotalRecordsUpdated++;
                            ImportInfo.RecordsUpdated[form]++;
                        }
                    }
                }

                if (!found && Append) // no match, this is a new record that must be inserted
                {
                    CreateNewBlankRow(form, fieldData.RecordGUID, fieldData.KeyValues);
                    ImportInfo.TotalRecordsAppended++;
                    ImportInfo.RecordsAppended[form]++;
                }
            }

            System.Threading.Thread.Sleep(2000); // give time for DB to update

            destinationKeyTable.Clear();
            selectQuery = destinationDb.CreateQuery("SELECT " + wb.ToString() + " " + form.FromViewSQL);
            using (IDataReader keyTableReader = destinationDb.ExecuteReader(selectQuery))
            {
                while (keyTableReader.Read())
                {
                    string guid = keyTableReader["GlobalRecordId"].ToString();
                    Dictionary <Field, object> keys = new Dictionary <Field, object>();

                    foreach (Field field in KeyFields)
                    {
                        keys.Add(field, keyTableReader[field.Name]);
                    }

                    destinationKeyTable.Rows.Add(guid, true, keys);
                }
            }

            //Parallel.ForEach(records, rec =>

            // TODO: Make this faster (note that Parallel foreach seems to make it worse)
            foreach (PackageFieldData rec in records)
            {
                bool   found        = false;
                string targetGuid   = String.Empty;
                bool   shouldUpdate = true;

                foreach (DataRow row in destinationKeyTable.Rows)
                {
                    Dictionary <Field, object> keyDictionary = row["KeyDictionary"] as Dictionary <Field, object>;

                    if (AreKeyFieldDictionariesEqual(keyDictionary, rec.KeyValues))
                    {
                        found        = true;
                        targetGuid   = row["GlobalRecordId"].ToString();
                        shouldUpdate = (bool)row["Update"];
                        break;
                    }
                }

                if (shouldUpdate && found && !String.IsNullOrEmpty(targetGuid) && rec.FieldValue != null && !String.IsNullOrEmpty(rec.FieldValue.ToString()))
                {
                    Query updateQuery = destinationDb.CreateQuery("UPDATE " + rec.Page.TableName + " SET " +
                                                                  "[" + rec.FieldName + "] = @" + rec.FieldName + " WHERE [GlobalRecordId] = @GlobalRecordId");

                    QueryParameter fieldParam = GetQueryParameterForField(rec, form, rec.Page);

                    if (fieldParam != null)
                    {
                        updateQuery.Parameters.Add(fieldParam);
                        updateQuery.Parameters.Add(new QueryParameter("@GlobalRecordId", DbType.String, targetGuid));
                        int rowsAffected = destinationDb.ExecuteNonQuery(updateQuery);

                        if (rowsAffected == 0)
                        {
                            throw new ApplicationException("No records affected.");
                        }
                        else if (rowsAffected > 1)
                        {
                            throw new ApplicationException("Too many records affected.");
                        }
                    }
                }
            }
            //);
        }
        public void TestQuery()
        {
            UserManagement page = new UserManagement();

            DynamicPageProxy proxy = new DynamicPageProxy(page);

            IMembershipApi membershipApi = SpringContext.Current.GetObject<IMembershipApi>();
            IPlatformConfiguration platformConfiguration = SpringContext.Current.GetObject<IPlatformConfiguration>();
            using (var httpEnv = new HttpEnvironment())
            {
                httpEnv.SetRequestUrl(@"/UserManagement/DynamicPage.svc?Domain=Department");

                #region Create Data
                Guid guid = Guid.NewGuid();
                string surfix = guid.ToString().Substring(0, 5);

                UserObject obj = new UserObject()
                {
                    OrganizationId = platformConfiguration.Organization.OrganizationId,
                    Comment = "IT specialist",
                    DisplayName = "Eunge Liu" + surfix,
                    Email = "*****@*****.**",
                    IsApproved = true,
                    MobilePin = "137641855XX",
                    UserName = "******"+surfix
                };
                membershipApi.Save(obj, "password1", null);
                createdObjectIds.Add(obj.UserId);

                #endregion

                #region query
                QueryParameterExpression expression = new QueryParameterExpression("UserName", QueryFieldOperators.Equal, "Eunge" + surfix);

                SortExpression sort = new SortExpression("UserName");

                QueryParameter parameters = new QueryParameter()
                {
                    //Expressions = express,
                    PageIndex = 0,
                    PageSize = 10,
                    SortExpression = sort
                };

                parameters.Expressions.Add(expression);

                QueryResults results = proxy.Query(parameters);

                foreach (var result in results.Results)
                {
                    Assert.AreEqual(DataBinder.Eval(result, "UserName"), "Eunge" + surfix);
                }
                #endregion
            }
        }
        /// <summary>
        /// Creates a new blank row for a given form's base table and all of its page tables.
        /// </summary>
        /// <param name="form">The form where the row should be added.</param>
        /// <param name="guid">The Guid value to use for the row.</param>
        /// <param name="keyValues">The key values to use for custom matching</param>
        /// <param name="fkey">The foreign key for the row.</param>
        /// <param name="firstSaveId">The user ID of the first person that saved this record.</param>
        /// <param name="firstSaveTime">The time when the record was first saved.</param>
        /// <param name="lastSaveId">The user ID of the last person that saved this record.</param>
        /// <param name="lastSaveTime">The time when the record was last saved.</param>
        protected virtual void CreateNewBlankRow(View form, string guid, Dictionary <Field, object> keyValues = null, string fkey = "", string firstSaveId = "", string lastSaveId = "", DateTime?firstSaveTime = null, DateTime?lastSaveTime = null)
        {
            #region Input Validation
            if (string.IsNullOrEmpty(guid))
            {
                throw new ArgumentNullException("guid");
            }
            if (form == null)
            {
                throw new ArgumentNullException("form");
            }
            #endregion // Input Validation

            if (Conn.State != ConnectionState.Open)
            {
                Conn.Open();
            }

            IDbDriver     db = DestinationProject.CollectedData.GetDatabase();
            StringBuilder sb = new StringBuilder();
            sb.Append(" insert into ");
            sb.Append(db.InsertInEscape(form.TableName));
            sb.Append(StringLiterals.SPACE);
            sb.Append(StringLiterals.SPACE);

            WordBuilder fields = new WordBuilder(",");
            fields.Append("[GlobalRecordId]");

            if (!string.IsNullOrEmpty(fkey))
            {
                fields.Append("[FKEY]");
            }
            if (!string.IsNullOrEmpty(firstSaveId))
            {
                fields.Append("[FirstSaveLogonName]");
            }
            if (!string.IsNullOrEmpty(lastSaveId))
            {
                fields.Append("[LastSaveLogonName]");
            }
            if (firstSaveTime.HasValue)
            {
                fields.Append("[FirstSaveTime]");
            }
            if (lastSaveTime.HasValue)
            {
                fields.Append("[LastSaveTime]");
            }

            sb.Append("(" + fields.ToString() + ")");
            sb.Append(" values (");

            List <QueryParameter> parameters = new List <QueryParameter>();
            WordBuilder           values     = new WordBuilder(",");
            values.Append("'" + guid + "'");

            if (!string.IsNullOrEmpty(fkey))
            {
                values.Append("@FKEY");
                parameters.Add(new QueryParameter("@FKEY", DbType.String, fkey));
            }
            if (!string.IsNullOrEmpty(firstSaveId))
            {
                values.Append("@FirstSaveLogonName");
                parameters.Add(new QueryParameter("@FirstSaveLogonName", DbType.String, firstSaveId));
            }
            if (!string.IsNullOrEmpty(lastSaveId))
            {
                values.Append("@LastSaveLogonName");
                parameters.Add(new QueryParameter("@LastSaveLogonName", DbType.String, lastSaveId));
            }
            if (firstSaveTime.HasValue)
            {
                values.Append("@FirstSaveTime");
                parameters.Add(new QueryParameter("@FirstSaveTime", DbType.DateTime, firstSaveTime));
            }
            if (lastSaveTime.HasValue)
            {
                values.Append("@LastSaveTime");
                parameters.Add(new QueryParameter("@LastSaveTime", DbType.DateTime, lastSaveTime));
            }

            sb.Append(values.ToString());
            sb.Append(") ");
            Epi.Data.Query insertQuery = db.CreateQuery(sb.ToString());
            insertQuery.Parameters = parameters;

            if (DestinationProject.CollectedDataDriver.ToLowerInvariant().Contains("epi.data.office"))
            {
                IDbCommand command = GetCommand(insertQuery.SqlStatement, Conn, insertQuery.Parameters);
                object     obj     = command.ExecuteNonQuery();
            }
            else
            {
                db.ExecuteNonQuery(insertQuery);
            }

            //Parallel.ForEach(form.Pages, page =>
            foreach (Page page in form.Pages)
            {
                WordBuilder           wbFields    = new WordBuilder(",");
                WordBuilder           wbParams    = new WordBuilder(",");
                List <QueryParameter> queryParams = new List <QueryParameter>();

                wbFields.Add("[GlobalRecordId]");
                wbParams.Add("@GlobalRecordId");
                queryParams.Add(new QueryParameter("@GlobalRecordId", DbType.String, guid));

                foreach (KeyValuePair <Field, object> kvp in keyValues)
                {
                    RenderableField field = kvp.Key as RenderableField;

                    PackageFieldData fieldData = new PackageFieldData();
                    fieldData.FieldValue = kvp.Value;
                    fieldData.FieldName  = field.Name;
                    fieldData.Page       = field.Page;

                    if (field.Page.TableName.Equals(page.TableName))
                    {
                        wbFields.Add(db.InsertInEscape(fieldData.FieldName));
                        wbParams.Add("@" + fieldData.FieldName);

                        QueryParameter parameter = GetQueryParameterForField(fieldData, form, field.Page);
                        queryParams.Add(parameter);
                    }
                }
                sb = new StringBuilder();
                sb.Append(" insert into ");
                sb.Append(db.InsertInEscape(page.TableName));
                sb.Append(StringLiterals.SPACE);
                sb.Append(StringLiterals.SPACE);
                sb.Append("(");
                sb.Append(wbFields.ToString());
                sb.Append(")");
                sb.Append(" values (");
                sb.Append(wbParams.ToString());
                sb.Append(") ");
                insertQuery = db.CreateQuery(sb.ToString());

                foreach (QueryParameter queryParam in queryParams)
                {
                    insertQuery.Parameters.Add(queryParam);
                }

                if (DestinationProject.CollectedDataDriver.ToLowerInvariant().Contains("epi.data.office"))
                {
                    IDbCommand command = GetCommand(insertQuery.SqlStatement, Conn, insertQuery.Parameters);
                    object     obj     = command.ExecuteNonQuery();
                }
                else
                {
                    db.ExecuteNonQuery(insertQuery);
                }
            }
            //);
        }
Example #31
0
        public Object PurchaseBillFlow(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var myfilter = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            int pageindex = para.page ?? 1;
            int pagesize  = para.count ?? 25;

            DBHelper      db = new DBHelper();
            StringBuilder sb = new StringBuilder();

            sb.Append(" where 1=1 ");

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field == "startdate")
                {
                    sb.AppendFormat(" and billdate>='{0}'", f);
                }
                else if (field == "enddate")
                {
                    sb.AppendFormat(" and billdate<='{0}'", f);
                }
                else if (field == "billcode")
                {
                    sb.AppendFormat(" and billcode ilike '%{0}%'", f);
                }
                else if (field == "vendorname")
                {
                    sb.AppendFormat(" and (vendorname ilike '%{0}%' or vendorcode ilike '%{0}%')", f);
                }
                else if (field == "employeename")
                {
                    sb.AppendFormat(" and (employeename ilike '%{0}%' or employeecode ilike '%{0}%')", f);
                }
                else if (field == "stockname")
                {
                    sb.AppendFormat(" and (stockname ilike '%{0}%' or stockcode ilike '%{0}%')", f);
                }
                else if (field == "productname")
                {
                    sb.AppendFormat(" and (productname ilike '%{0}%' or productcode ilike '%{0}%')", f);
                }
                else if (field == "makername")
                {
                    sb.AppendFormat(" and (makername ilike '%{0}%' or makercode ilike '%{0}%')", f);
                }
                else if (field == "comment")
                {
                    sb.AppendFormat(" and comment ilike '%{0}%'", f);
                }
            }

            StringBuilder sborder = new StringBuilder();

            sborder.Append(" order by id,productcode ");


            sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);

            string cte = "with cte as (select mvw_purchasebill.* from mvw_purchasebill "
                         + "inner join stock on mvw_purchasebill.stockid=stock.id "
                         + "inner join vendor on mvw_purchasebill.vendorid=vendor.id "
                         + "inner join product on mvw_purchasebill.productid=product.id) ";

            string sql = cte
                         + "select * " +
                         "from cte " +
                         sb.ToString() +
                         sborder.ToString();

            string sqlCount = cte
                              + "select count(0) from cte "
                              + sb.ToString();


            string sqlSum = cte
                            + "select coalesce(sum(qty) filter (where billname='purchasebill'),0)-coalesce(sum(qty) filter (where billname='purchasebackbill'),0) as qty," +
                            "coalesce(sum(total) filter (where billname='purchasebill'),0)-coalesce(sum(total) filter (where billname='purchasebackbill'),0) as total," +
                            "coalesce(sum(discounttotal) filter (where billname='purchasebill'),0)-coalesce(sum(discounttotal) filter (where billname='purchasebackbill'),0) as discounttotal " +
                            "from cte " +
                            sb.ToString();


            int       recordcount = db.Count(sqlCount);
            DataTable dtSum       = db.QueryTable(sqlSum);

            decimal qtysum           = Convert.ToDecimal(dtSum.Rows[0]["qty"]);
            decimal totalsum         = Convert.ToDecimal(dtSum.Rows[0]["total"]);
            decimal discounttotalsum = Convert.ToDecimal(dtSum.Rows[0]["discounttotal"]);
            decimal taxtotalsum      = discounttotalsum - totalsum;

            DataTable list = db.QueryTable(sql);

            bool showcost = PluginContext.Current.Account.IsAllowed("showcost");

            return(new
            {
                showcost = showcost,
                resulttotal = recordcount,
                qtysum = qtysum,
                totalsum = totalsum,
                discounttotalsum = discounttotalsum,
                taxtotalsum = taxtotalsum,
                data = list
            });
        }
 public CovidRecord[] Get([FromQuery] QueryParameter parameters)
 {
     return(_countryService.GetSortedCount(parameters.Ascending, "confirmed", parameters.Top, parameters.Year, parameters.Month, parameters.Day));
 }
 /// <summary>
 /// 返回满足查询条件的业务单位类型,该表不做显示维护数据表
 /// </summary>
 /// <param name="param">查询条件</param>
 /// <returns>
 /// 业务单位类型,该表不做显示维护数据表</returns>
 public DataTable GetSys_BusiUnitTypeTable(QueryParameter param)
 {
     return(this._sys_BusiUnitTypeDAO.GetSys_BusiUnitTypeTable(param));
 }
Example #34
0
        }                                                 // IsValid

        public QuickOfferModel GetOffer(bool bSaveOfferToDB, AConnection oDB, ASafeLog oLog)
        {
            if (RequestedAmount < Cfg.MinOfferAmount)
            {
                oLog.Debug("Requested amount (£{0}) is less than minimal offer amount (£{1}), not offering.", RequestedAmount, Cfg.MinOfferAmount);
                return(null);
            }             // if

            oDB.ForEachRowSafe(
                (sr, bRowsetStart) => {
                minLoanAmount = sr["MinLoanAmount"];
                return(ActionResult.SkipAll);
            },
                "GetBankBasedApprovalConfigs",
                CommandSpecies.StoredProcedure
                );

            decimal?nOffer = Calculate();

            if (!nOffer.HasValue)
            {
                return(null);
            }

            int nOfferID = default(int);

            decimal nRequestedAmount = RequestedAmount.Min(Cfg.PotentialMaxAmount);

            var oOffer = new QuickOfferModel {
                ID                 = nOfferID,
                Amount             = nOffer.Value,
                Aml                = Aml,
                BusinessScore      = BusinessScore,
                IncorporationDate  = IncorporationDate.Value,
                TangibleEquity     = TangibleEquity,
                TotalCurrentAssets = TotalCurrentAssets,

                ImmediateTerm         = Cfg.ImmediateTermMonths,
                ImmediateInterestRate = Cfg.ImmediateInterestRate,
                ImmediateSetupFee     = Cfg.ImmediateSetupFee,

                PotentialAmount       = nRequestedAmount,
                PotentialTerm         = Cfg.PotentialTermMonths,
                PotentialInterestRate = Cfg.LoanPct(BusinessScore, nRequestedAmount),
                PotentialSetupFee     = Cfg.PotentialSetupFee,
            };

            if (bSaveOfferToDB && (Cfg.Enabled != QuickOfferEnabledStatus.Silent))
            {
                try {
                    var oID = new QueryParameter("@QuickOfferID")
                    {
                        Type      = DbType.Int32,
                        Direction = ParameterDirection.Output,
                    };

                    oDB.ExecuteNonQuery(
                        "QuickOfferSave",
                        CommandSpecies.StoredProcedure,
                        new QueryParameter("@Now", DateTime.UtcNow),
                        new QueryParameter("@CustomerID", CustomerID),
                        new QueryParameter("@Amount", oOffer.Amount),
                        new QueryParameter("@Aml", oOffer.Aml),
                        new QueryParameter("@BusinessScore", oOffer.BusinessScore),
                        new QueryParameter("@IncorporationDate", oOffer.IncorporationDate),
                        new QueryParameter("@TangibleEquity", oOffer.TangibleEquity),
                        new QueryParameter("@TotalCurrentAssets", oOffer.TotalCurrentAssets),

                        new QueryParameter("@ImmediateTerm", oOffer.ImmediateTerm),
                        new QueryParameter("@ImmediateInterestRate", oOffer.ImmediateInterestRate),
                        new QueryParameter("@ImmediateSetupFee", oOffer.ImmediateSetupFee),
                        new QueryParameter("@PotentialAmount", oOffer.PotentialAmount),
                        new QueryParameter("@PotentialTerm", oOffer.PotentialTerm),
                        new QueryParameter("@PotentialInterestRate", oOffer.PotentialInterestRate),
                        new QueryParameter("@PotentialSetupFee", oOffer.PotentialSetupFee),
                        oID
                        );

                    if (int.TryParse(oID.SafeReturnedValue, out nOfferID))
                    {
                        oLog.Msg("Quick offer id is {0}", nOfferID);
                        oOffer.ID = nOfferID;
                    }
                    else
                    {
                        oLog.Warn("Failed to parse quick offer id from {0}", oID.Value.ToString());
                    }
                }
                catch (Exception e) {
                    oLog.Alert(e, "Failed to save a quick offer to DB.");
                }         // try
            }             // if

            return(oOffer);
        }         // GetOffer
 public virtual object ConvertDataValueForThisProvider(QueryParameter parameter)
 {
     return parameter.ParameterValue;
 }
Example #36
0
 public abstract DataSet GetDataRow(QueryParameter queryParameter);
Example #37
0
 private void DisplayFilter()
 {
     if(treeList_StationLayer.Visible)
     {
         var layers = _stationLayers[_blinkLayerName];
         var layerInfo = LayerService.INSTANCE.GetStationLayerInfos().First(l => l.LayerName == _blinkLayerName);
         var dlgLayerDisplayFilter = new DlgLayerFilter(layerInfo.FieldInfos);
         if (dlgLayerDisplayFilter.ShowDialog() == DialogResult.OK)
         {
             var condition = dlgLayerDisplayFilter.Condition;
             foreach (var layer in layers)
             {
                 var queryParameter = new QueryParameter { AttributeFilter = condition };
                 layer.DisplayFilter = queryParameter;
             }
         }
     }
     else
     {
         var layers = _siteLayers[_blinkLayerName];
         var layerInfo = LayerService.INSTANCE.GetSiteLayerInfos().First(l => l.LayerName == _blinkLayerName);
         var dlgLayerDisplayFilter = new DlgLayerFilter(layerInfo.FieldInfos);
         if(dlgLayerDisplayFilter.ShowDialog()==DialogResult.OK)
         {
             var condition = dlgLayerDisplayFilter.Condition;
             foreach (var layer in layers)
             {
                 var queryParameter = new QueryParameter {AttributeFilter = condition};
                 layer.DisplayFilter = queryParameter;
             }
         }
     }
     _currentMapCtl.Map.Refresh();
 }
Example #38
0
        public void getAtt(Selection3D[] selections)
        {
            m_selections = selections;
            if (treeView1.Nodes.Count != 0)
            {
                treeView1.Nodes.Clear();
            }
            if (dataGridView1.Columns.Count != 0)
            {
                dataGridView1.Columns.Clear();
            }
            if (dataGridView1.Rows.Count != 0)
            {
                dataGridView1.Rows.Clear();
            }
            List <TreeNode> tns = new List <TreeNode>();

            for (int i = 0; i < selections[0].Count; i++)
            {
                TreeNode t = new TreeNode(selections[0][i].ToString());
                tns.Add(t);
            }

            TreeNode tN = new TreeNode("属性", tns.ToArray());

            treeView1.Nodes.Add(tN);
            treeView1.ExpandAll();

            var lll = selections[0].Layer;

            if (selections[0].Layer is Layer3DDataset)
            {
                Layer3DDataset l3d = (Layer3DDataset)selections[0].Layer;
                ObjDV      = (DatasetVector)l3d.Dataset;
                fieldInfos = ObjDV.FieldInfos;
            }
            else
            {
                lVF        = (Layer3DVectorFile)selections[0].Layer;
                fieldInfos = lVF.GetFieldInfos();
            }
            int[] ID = new int[selections[0].Count];
            for (int i = 0; i < ID.Length; i++)
            {
                ID[i] = selections[0][i];
            }
            dataGridView1.ColumnCount     = 5;
            dataGridView1.Columns[0].Name = "字段名";
            dataGridView1.Columns[1].Name = "字段别名";
            dataGridView1.Columns[2].Name = "字段类型";
            dataGridView1.Columns[3].Name = "必填";
            dataGridView1.Columns[4].Name = "字段值";
            dataGridView1.RowCount        = fieldInfos.Count;
            for (int i = 0; i < fieldInfos.Count; i++)
            {
                dataGridView1[0, i].Value = fieldInfos[i].Name;
                dataGridView1[1, i].Value = fieldInfos[i].Caption;
                dataGridView1[2, i].Value = fieldInfos[i].Type;
                dataGridView1[3, i].Value = fieldInfos[i].IsRequired;
            }
            for (int i = 0; i < fieldInfos.Count; i++)
            {
                if (lVF != null && lVF.GetFieldValueOfSelectedObject(i) != null)
                {
                    dataGridView1[4, i].Value = lVF.GetFieldValueOfSelectedObject(i).ToString();
                }
                if (ObjDV != null)
                {
                    QueryParameter query = new QueryParameter();
                    query.AttributeFilter = string.Format("SmID={0}", selections[0][0]);
                    Recordset recordset = ObjDV.Query(query);;
                    dataGridView1[4, i].Value = recordset.GetFieldValue(i).ToString();
                }
            }
        }
Example #39
0
		public override object ConvertDataValueForThisProvider(QueryParameter parameter) {
			if (parameter.ParameterValue == null)
			{
				return null;
			}
            if (parameter.ParameterValue is bool)
			{
                return (bool)parameter.ParameterValue ? 1 : 0;
			}
            if (parameter.ParameterValue is Guid)
			{
                return parameter.ParameterValue.ToString();
			}
			return base.ConvertDataValueForThisProvider(parameter);
		}
Example #40
0
 public static T[] GetValues <T>(this QueryParameter parameter)
 {
     return(!parameter.Values.Any() ? new T[0] : parameter.Values.Select(x => ChangeType <T>(x)).ToArray());
 }
Example #41
0
        /// <summary>
        /// Returns a native equivalent of a DbParameter
        /// </summary>
        /// <returns>A native equivalent of a DbParameter</returns>
        protected virtual SqlParameter ConvertToNativeParameter(QueryParameter parameter)
        {
            if(parameter.DbType.Equals(DbType.Guid))
            {
                parameter.Value = new Guid(parameter.Value.ToString());
            }

            return new SqlParameter(parameter.ParameterName, CovertToNativeDbType(parameter.DbType), parameter.Size, parameter.Direction, parameter.IsNullable, parameter.Precision, parameter.Scale, parameter.SourceColumn, parameter.SourceVersion, parameter.Value);
        }
Example #42
0
 public static FilterComparator GetComparator(this QueryParameter parameter)
 {
     return(Enumeration.GetByDisplayName <FilterComparator>(parameter.Name.Substring(0, 2)));
 }
		/// <summary>
		/// 显示mark的详细信息属性窗
		/// </summary>
		private void ShowMarkDetailInfo(string tag)
		{
			if (this.QueryLayerList.Items.Count > 0)
			{
				string layerName = this.QueryLayerList.SelectedValue.ToString();
				Workspace ws = MainWindow.m_workspace;
				if (ws != null)
				{
					string sourceName = ConfigurationManager.AppSettings.Get(queryDataSource);
					Datasource dSource = ws.Datasources[sourceName];
					if (dSource != null)
					{
						DatasetVector dSetV = (DatasetVector)dSource.Datasets[layerName];
						if (dSetV != null)
						{
							string fieldName = ConfigurationManager.AppSettings.Get(queryNameField);
							string fieldCode = ConfigurationManager.AppSettings.Get(queryCodeField);
							QueryParameter queryParameter = new QueryParameter();
							queryParameter.CursorType = SuperMap.Data.CursorType.Static;
							queryParameter.HasGeometry = true;
							string[] tempArr = tag.Split('#');
							queryParameter.AttributeFilter = fieldName + " = '" + tempArr[0] + "' and " + fieldCode + " = '" + tempArr[1] + "'";

							Recordset recordset = dSetV.Query(queryParameter);
							if (recordset != null && recordset.RecordCount > 0)
							{
								bool isExist = false;
								FieldInfos fis = recordset.GetFieldInfos();
								for (int i = 0; i < fis.Count; i++)
								{
									FieldInfo fi = fis[i];
									if (fi != null)
									{
										if (fi.Name.ToString().ToUpper() == fieldName)
										{
											isExist = true;
											break;
										}
										continue;
									}
								}

								if (isExist)
								{
									ObservableCollection<DetailVO> detailList = new ObservableCollection<DetailVO>();
									for (recordset.MoveFirst(); recordset.IsEOF == false; recordset.MoveNext())
									{
										FieldInfos fs = recordset.GetFieldInfos();
										for (int j = 0; j < fs.Count; j++)
										{
											FieldInfo fi = fs[j];
											if (fi != null && fi.Name.ToLower().IndexOf("sm") == -1)
											{
												DetailVO dv = new DetailVO();
												if (fi.Name != null)
												{
													dv.FeatureField = fi.Name;
													if (recordset.GetFieldValue(fi.Name) != null)
													{
														dv.FeatureValue = recordset.GetFieldValue(fi.Name).ToString();
														if (fi.Name.ToString().ToUpper() == fieldName)
														{
															this.ShowLegendTitle.Text = recordset.GetFieldValue(fieldName).ToString();
														}
													}
													detailList.Add(dv);
												}
											}
										}
									}
									this.DetailRadGridView.ItemsSource = detailList;
									this.DetailPanel.Visibility = System.Windows.Visibility.Visible;
								}

							}
						}
					}
				}
			}
		}
Example #44
0
        public static EpcisField GetAttributeField(this QueryParameter parameter)
        {
            var parts = parameter.Name.Split('_', 3);

            return(Enumeration.GetByDisplayName <EpcisField>(parts[1]));
        }
        public void _003_Case_of_NullableFieldQuery()
        {
            var sut = new QueryParameter<Employee>(e => e.Comment == "I am a person who raises himself up to the next level, rather than becoming discouraged.");
            Assert.Equal(null, sut.Key);
            Assert.Equal(2, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            var filer = sut.ApiFilter[0][0];
            Assert.Equal("N_Comment", filer.Field.Name);
            Assert.Equal(false, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            filer = sut.ApiFilter[1][0];
            Assert.Equal("Comment", filer.Field.Name);
            Assert.Equal("I am a person who raises himself up to the next level, rather than becoming discouraged.", filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            sut = new QueryParameter<Employee>(e => e.Comment == null);
            Assert.Equal(null, sut.Key);
            Assert.Equal(1, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("N_Comment", filer.Field.Name);
            Assert.Equal(true, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            sut = new QueryParameter<Employee>(e => e.Comment == e.Comment);
            Assert.Equal(null, sut.Key);
            Assert.Equal(2, sut.ApiFilter.FilterCount);
            Assert.Equal(null, sut.AdditionalFilter);

            filer = sut.ApiFilter[0][0];
            Assert.Equal("N_Comment", filer.Field.Name);
            Assert.Equal("N_Comment", filer.ComparedField.Name);
            Assert.Equal(FilterType.Equal, filer.Type);

            filer = sut.ApiFilter[1][0];
            Assert.Equal("Comment", filer.Field.Name);
            Assert.Equal("Comment", filer.ComparedField.Name);
            Assert.Equal(FilterType.Equal, filer.Type);
        }
Example #46
0
        public static string GetAttributeName(this QueryParameter parameter)
        {
            var parts = parameter.Name.Split('_', 3);

            return(parts[2]);
        }
        public void _004_Case_of_MixedQuery()
        {
            Expression<Func<Employee, bool>> whereExpression = e =>
                (e.Id == 1 || e.Id == 2 || e.Id == 3) &&
                e.FirstName != "Takamori" &&
                e.LastName.GreaterThanOrEqual("R") &&
                e.Salary > 1000 &&
                String.IsNullOrEmpty(e.Comment);
            var sut = new QueryParameter<Employee>(whereExpression);
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(6, sut.ApiFilter.FilterCount);
            Assert.NotEqual(null, sut.AdditionalFilter);

            var filer = sut.ApiFilter[0][0];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(1, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            filer = sut.ApiFilter[0][1];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(2, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            filer = sut.ApiFilter[0][2];
            Assert.Equal("Id", filer.Field.Name);
            Assert.Equal(3, filer.Value);
            Assert.Equal(FilterType.Equal, filer.Type);

            filer = sut.ApiFilter[1][0];
            Assert.Equal("FirstName", filer.Field.Name);
            Assert.Equal("Takamori", filer.Value);
            Assert.Equal(FilterType.NotEqual, filer.Type);

            filer = sut.ApiFilter[2][0];
            Assert.Equal("LastName", filer.Field.Name);
            Assert.Equal("R", filer.Value);
            Assert.Equal(FilterType.GreaterThanOrEqual, filer.Type);

            filer = sut.ApiFilter[3][0];
            Assert.Equal("Salary", filer.Field.Name);
            Assert.Equal(1000m, filer.Value);
            Assert.Equal(FilterType.GreaterThan, filer.Type);

            sut = new QueryParameter<Employee>(null, whereExpression);
            Assert.Equal(null, sut.Key);
            Assert.Equal(6, sut.ApiFilter.FilterCount);
            Assert.NotEqual(null, sut.AdditionalFilter);

            sut = new QueryParameter<Employee>(Employee.Keys[0], whereExpression);
            Assert.Equal(0, sut.Key.KeyNumber);
            Assert.Equal(6, sut.ApiFilter.FilterCount);
            Assert.NotEqual(null, sut.AdditionalFilter);

            sut = new QueryParameter<Employee>(Employee.Keys[1], whereExpression);
            Assert.Equal(1, sut.Key.KeyNumber);
            Assert.Equal(6, sut.ApiFilter.FilterCount);
            Assert.NotEqual(null, sut.AdditionalFilter);
        }
Example #48
0
        public Object List(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var mysorting = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.sorting);
            var myfilter  = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            int pageindex = para.page ?? 1;
            int pagesize  = para.count ?? 25;

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(" where coalesce(vendor.content->>'stop','')='' and coalesce(product.content->>'stop','')=''");

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field == "vendorid")
                {
                    sb.AppendFormat(" and (vendorproduct.content->>'vendorid')::int = {0}", f);
                }
                else if (field == "productid")
                {
                    sb.AppendFormat(" and (vendorproduct.content->>'productid')::int = {0}", f);
                }
            }

            StringBuilder sborder = new StringBuilder();

            if (mysorting.Count > 0)
            {
                sborder.Append(" order by ");
            }
            int i = 0;

            foreach (string field in mysorting.Keys)
            {
                i++;
                if (field.ToLower() == "vendor.code")
                {
                    sborder.AppendFormat(" vendor.content->'vendor'->>'code' {0} {1}", mysorting[field], i == mysorting.Count ? "" : ",");
                }
                else if (field.ToLower() == "vendor.name")
                {
                    sborder.AppendFormat(" vendor.content->'vendor'->>'name' {0} {1}", mysorting[field], i == mysorting.Count ? "" : ",");
                }
                else if (field.ToLower() == "product.code")
                {
                    sborder.AppendFormat(" product.content->'product'->>'code' {0} {1}", mysorting[field], i == mysorting.Count ? "" : ",");
                }
                else if (field.ToLower() == "product.name")
                {
                    sborder.AppendFormat(" product.content->'product'->>'name' {0} {1}", mysorting[field], i == mysorting.Count ? "" : ",");
                }
                else
                {
                    sborder.AppendFormat(" vendorproduct.content->>'{0}' {1} {2}", field.ToLower(), mysorting[field], i == mysorting.Count ? "" : ",");
                }
            }

            if (mysorting.Count == 0)
            {
                sborder.Append(" order by vendorproduct.id desc ");
            }

            sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);


            DBHelper db  = new DBHelper();
            string   sql = "select vendorproduct.id,jsonb_set(jsonb_set(vendorproduct.content,'{vendor}',vendor.content),'{product}',product.content) as content"
                           + " from vendorproduct "
                           + " inner join vendor on (vendorproduct.content->>'vendorid')::int=vendor.id "
                           + " inner join product on (vendorproduct.content->>'productid')::int=product.id "
                           + sb.ToString()
                           + sborder.ToString();

            string sqlCount = "select count(0) as cnt"
                              + " from vendorproduct "
                              + " inner join vendor on (vendorproduct.content->>'vendorid')::int=vendor.id "
                              + " inner join product on (vendorproduct.content->>'productid')::int=product.id "
                              + sb.ToString();

            int recordcount        = db.Count(sqlCount);
            List <TableModel> list = db.Where(sql);

            return(new { resulttotal = recordcount, data = list });
        }
 public HTTPQuery(QueryParameter queryParam, string queryValue)
 {
     param = queryParam;
     value = queryValue;
 }
        /// <summary>
        /// Execute query for organizations binding to dynamic page grid.
        /// </summary>
        /// <param name="parameter">Query parameter.</param>
        /// <returns>Returns query results.</returns>
        public override QueryResults Query(QueryParameter parameter)
        {
            LinqPredicate predicate = LinqPredicate.Concat(parameter.Expressions.Compile(), this.CreateCustomQuery(parameter));

            string sortExpression = null;
            if (parameter.SortExpression != null)
                sortExpression = parameter.SortExpression.Compile();

            if (Kit.IsEmpty(sortExpression))
                sortExpression = "LastUpdatedDate DESC";

            int recordCount;
            IEnumerable<OrganizationObject> organizationObjects = organizationApi.FindOrganizations(predicate, sortExpression, parameter.PageIndex, parameter.PageSize, out recordCount);
            var dataSource = organizationObjects.Select(c => new
            {
                OrganizationId = c.OrganizationId,
                OrganizationCode = c.OrganizationCode,
                OrganizationName = c.OrganizationName,
                c.Description,
                c.Status,
                ParentOrganizationId = c.ParentOrganizationId,
                c.Hierarchies,
                c.LastUpdatedBy,
                c.LastUpdatedDate,
                c.CreatedBy,
                c.CreatedDate,
                OrganizationTypeName = organizationApi.GetOrganizationType(c.OrganizationTypeId).ToString(),
                c.Properties
            }).ToList();

            return new QueryResults(recordCount, dataSource);
        }
Example #51
0
 private void AddSearchTerms(string searchterms)
 {
     if (searchterms != null && searchterms != "") {
         var qp = new QueryParameter(SolrSearcher.SolrSchema.DefaultSearchField, searchterms);
         var qpList = new List<QueryParameter> {qp};
         var qps = new QueryParameterCollection("default", qpList);
         Query.AddQueryParameters(qps, ParameterJoin.OR);
     }
 }
        private static QueryParameter GetMasteryDefaultQueryParameter()
        {
            var queryParameter = new QueryParameter("masteryListData", "all");

            return(queryParameter);
        }
 /// <summary>
 /// Create custom query expression which will be used with input query parameter to execute query by the method Query.
 /// </summary>
 /// <param name="parameter"></param>
 /// <returns></returns>
 protected virtual LinqPredicate CreateCustomQuery(QueryParameter parameter)
 {
     return null;
 }
Example #54
0
        protected virtual Expression VisitMethodCall(MethodCallExpression exp, StringBuilder sb, QueryParameter data = null)
        {
            switch (exp.Method.Name)
            {
            case "Contains":
                if (exp.Object != null && exp.Object.Type == typeof(String))
                {
                    // String contains
                    this.Visit(exp.Object, sb, data);
                    sb.Append(" ILIKE ");
                    this.Visit(exp.Arguments[0], sb, new QueryParameter {
                        AppendStart = "%", AppendEnd = "%"
                    });
                }
                else
                {
                    // List contains
                    this.Visit((exp.Object == null) ? exp.Arguments[1] : exp.Arguments[0], sb, data);
                    sb.Append(" IN ");
                    this.Visit((exp.Object == null) ? exp.Arguments[0] : exp.Object, sb, data);
                }
                return(exp);

            case "StartsWith":
                if (exp.Object != null && exp.Object.Type == typeof(String))
                {
                    this.Visit(exp.Object, sb, data);
                    sb.Append(" ILIKE ");
                    this.Visit(exp.Arguments[0], sb, new QueryParameter {
                        AppendEnd = "%"
                    });
                }
                else
                {
                    throw new NotSupportedException(String.Format("The method [{0}] is not supported.", exp.Method.Name));
                }

                return(exp);

            default:
                try
                {
                    return(this.VisitConstant(Expression.Constant(Expression.Lambda(exp).Compile().DynamicInvoke(null)), sb));
                }
                catch (Exception) { throw new NotSupportedException(String.Format("The method [{0}] is not supported.", exp.Method.Name)); }
            }
        }
Example #55
0
        public void Setup()
        {
            _fixture = new Fixture();
            _fixture.Customize(new AutoMoqCustomization());
            _fixture.Customize(new RandomNumericSequenceCustomization());

            Expression <Func <ControllerSample, ModelSample, IEnumerable <ModelSample> > > lambda = (c, m)
                                                                                                    => c.ControllerQueryMethod(m.Id, m.Name, QueryParameter.Is <string>(), QueryParameter.Is <int>());

            Expression <Func <ControllerSample, ModelSample, ModelSample> > lambda2 = (c, m)
                                                                                      => c.ControllerMethodPut(m.Id, m);

            var apiExplorerMoq = new Mock <IApiExplorer>();

            apiExplorerMoq.Setup(_ => _.ApiDescriptions).Returns(new Collection <ApiDescription>()
            {
                new ApiDescription()
                {
                }
            });

            var actionConfiguration = new Mock <IActionConfiguration>();

            actionConfiguration.Setup(_ => _.MappingRules).Returns(() => new List <MappingRule>
            {
                new MappingRule((MethodCallExpression)lambda.Body, apiExplorerMoq.Object)
                {
                    ApiDescriptions = new List <ApiDescription>()
                    {
                        new ApiDescription()
                        {
                            RelativePath = "/api/{id}?query={query}",
                            HttpMethod   = HttpMethod.Get
                        }
                    },
                    Type = MappingRule.RuleType.ActionRule
                },
                new MappingRule((MethodCallExpression)lambda2.Body, apiExplorerMoq.Object)
                {
                    ApiDescriptions = new List <ApiDescription>()
                    {
                        new ApiDescription()
                        {
                            RelativePath = "/api/prod/{id}",
                            HttpMethod   = HttpMethod.Put
                        }
                    },
                    Type = MappingRule.RuleType.Default
                }
            });

            _actionConfiguration = actionConfiguration.Object;
        }
Example #56
0
        public Object PurchaseSupplement(string parameters)
        {
            QueryParameter para = ParameterHelper.GetQueryParameters(parameters);

            var myfilter = JsonConvert.DeserializeObject <Dictionary <string, string> >(para.filter);

            StringBuilder sb = new StringBuilder();

            sb.Append(" and coalesce(content->>'stop','')=''");

            foreach (string field in myfilter.Keys)
            {
                if (string.IsNullOrEmpty(myfilter[field]))
                {
                    continue;
                }

                string f = myfilter[field].Trim();
                if (string.IsNullOrEmpty(f))
                {
                    continue;
                }

                if (field.ToLower() == "vendorid")
                {
                    sb.AppendFormat(" and (content->>'vendorid')::int = {0}", f);
                }
            }

            StringBuilder sborder = new StringBuilder();

            sborder.Append(" order by content->>'code' ");


            //sborder.AppendFormat(" limit {0} offset {1} ", pagesize, pagesize * pageindex - pagesize);

            int               recordcount = 0;
            DBHelper          db          = new DBHelper();
            List <TableModel> list        = db.Query("product", sb.ToString(), sborder.ToString(), out recordcount);

            decimal storageqtysum = decimal.Zero;
            decimal saleqtysum    = decimal.Zero;

            foreach (var item in list)
            {
                string startdate = DateTime.Now.AddDays(-Convert.ToDouble(myfilter["saledate"])).ToString("yyyy-MM-dd");
                var    saleqty   = db.Scalar("select coalesce(sum(qty),0) as qty from mvw_salebill  where productid=" + item.id + " and billdate>='" + startdate + "'");
                item.content.Add("saleqty", Convert.ToDecimal(saleqty));

                saleqtysum += Convert.ToDecimal(saleqty);
                if (item.content["storage"] != null)
                {
                    storageqtysum += Convert.ToDecimal(item.content.Value <JObject>("storage").Value <JObject>("0").Value <decimal>("qty"));
                }

                var vp = db.FirstOrDefault("select * from vendorproduct where (content->>'vendorid')::int=" + myfilter["vendorid"] + " and (content->>'productid')::int=" + item.id);
                if (vp != null)
                {
                    item.content.Add("lastbuyprice", vp.content["price"]);
                }
            }

            return(new { resulttotal = recordcount, data = list, storageqtysum = storageqtysum, saleqtysum = saleqtysum });
        }
 /// <summary>
 /// Create custom query expression which will be used with input query parameter to execute query by the method Query.
 /// </summary>
 /// <param name="parameter"></param>
 /// <returns></returns>
 protected virtual LinqPredicate CreateCustomQuery(QueryParameter parameter)
 {
     string domain = authenticationContext.TempVariables["Domain.Value"] as string;
     return new LinqPredicate("OrganizationType.Domain=@0", new object[] { domain });
 }
Example #58
0
        /// <summary>
        /// Replace a parameter when a compiled query is executed.
        /// </summary>
        /// <param name="number"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        protected QueryBuilder <T> ReplaceParameter(string name, object value)
        {
            if (value is IEnumerable && value.GetType() != typeof(String))
            {
                StringBuilder sb = new StringBuilder();
                int           i  = 0;
                foreach (object val in (IEnumerable)value)
                {
                    string paramName = DataMapper.ParamName(String.Format("{0}{1}", name, i++));

                    if (i > 1)
                    {
                        sb.Append(",");
                    }

                    sb.Append(paramName);

                    // Add or replace the new parameter.
                    if (Parameters.ContainsKey(paramName))
                    {
                        Parameters[paramName].Value = val;
                    }
                    else
                    {
                        Parameters.Add(paramName, new QueryParameter {
                            Value = val
                        });
                    }
                }

                string baseParamName = DataMapper.ParamName(name);

                if (Parameters.ContainsKey(baseParamName))
                {
                    // Replace the single parameter in the WHERE and UPDATE clauses with the parameter list.
                    this.WhereStr.Replace(baseParamName, sb.ToString());
                    this.UpdateStr.Replace(baseParamName, sb.ToString());

                    // Remove the single placeholder parameter.
                    Parameters.Remove(baseParamName);
                }
            }
            else
            {
                string paramName = DataMapper.ParamName(name);

                if (Parameters.ContainsKey(paramName))
                {
                    QueryParameter parameter = Parameters[paramName];

                    if (value != null && !String.IsNullOrEmpty(parameter.AppendStart) && value.GetType() == typeof(String))
                    {
                        value = String.Format("{0}{1}", parameter.AppendStart, value);
                    }

                    if (value != null && !String.IsNullOrEmpty(parameter.AppendEnd) && value.GetType() == typeof(String))
                    {
                        value = String.Format("{0}{1}", value, parameter.AppendEnd);
                    }

                    parameter.Value = value;
                }
            }

            return(this);
        }
 public QueryResults Query(QueryParameter parameter)
 {
     return new QueryResults(0, new ArrayList());
 }
Example #60
0
        protected virtual Expression Visit(Expression exp, StringBuilder sb, QueryParameter data = null)
        {
            if (exp == null)
            {
                return(exp);
            }
            switch (exp.NodeType)
            {
            case ExpressionType.Negate:
            case ExpressionType.NegateChecked:
            case ExpressionType.Not:
            case ExpressionType.Convert:
            case ExpressionType.ConvertChecked:
            case ExpressionType.ArrayLength:
            case ExpressionType.Quote:
            case ExpressionType.TypeAs:
                return(this.VisitUnary((UnaryExpression)exp, sb, data));

            case ExpressionType.Add:
            case ExpressionType.AddChecked:
            case ExpressionType.Subtract:
            case ExpressionType.SubtractChecked:
            case ExpressionType.Multiply:
            case ExpressionType.MultiplyChecked:
            case ExpressionType.Divide:
            case ExpressionType.Modulo:
            case ExpressionType.And:
            case ExpressionType.AndAlso:
            case ExpressionType.Or:
            case ExpressionType.OrElse:
            case ExpressionType.LessThan:
            case ExpressionType.LessThanOrEqual:
            case ExpressionType.GreaterThan:
            case ExpressionType.GreaterThanOrEqual:
            case ExpressionType.Equal:
            case ExpressionType.NotEqual:
            case ExpressionType.Coalesce:
            case ExpressionType.ArrayIndex:
            case ExpressionType.RightShift:
            case ExpressionType.LeftShift:
            case ExpressionType.ExclusiveOr:
                return(this.VisitBinary((BinaryExpression)exp, sb, data));

            case ExpressionType.Constant:
                return(this.VisitConstant((ConstantExpression)exp, sb, data));

            case ExpressionType.MemberAccess:
                return(this.VisitMemberAccess((MemberExpression)exp, sb, data));

            case ExpressionType.Lambda:
                return(this.VisitLambda((LambdaExpression)exp, sb, data));

            case ExpressionType.Call:
                return(this.VisitMethodCall((MethodCallExpression)exp, sb, data));

            case ExpressionType.NewArrayInit:
            case ExpressionType.ListInit:
                return(this.VisitConstant(Expression.Constant(Expression.Lambda(exp).Compile().DynamicInvoke(null)), sb, data));

            default:
                throw new Exception(string.Format("Unhandled expression type: '{0}'", exp.NodeType));
            }
        }