/// <summary> /// 进行必输验证 /// </summary> /// <param name="rule">json结构,key为传入参数名称,value为提示信息</param> /// <returns></returns> public virtual dynamic RequireValidation(FrameDLRObject rule) { var rtn = FrameDLRObject.CreateInstance(@"{ issuccess:true, msg:'' }"); foreach (var s in rule.Keys) { var input = _logic.CallContext_Parameter[DomainKey.POST_DATA, s]; input = input == null ? _logic.CallContext_Parameter[DomainKey.QUERY_STRING, s] : input; if (input == null) { rtn.issuccess = false; rtn.msg = rule.GetValue(s); return(rtn); } else { if (input is string) { if (ComFunc.nvl(input) == "") { rtn.issuccess = false; rtn.msg = rule.GetValue(s); return(rtn); } } } } return(rtn); }
public dynamic ToJSONObject() { var rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); Dictionary <string, object> d = new Dictionary <string, object>(); foreach (var item in _d) { d.Add(item.Key, item.Value.Clone()); } rtn.content = d; Dictionary <string, object> dbyurl = new Dictionary <string, object>(); foreach (var item in _dbyurl) { dbyurl.Add(item.Key, item.Value.Clone()); } rtn.content_by_url = dbyurl; Dictionary <string, object> wildcardsmap = new Dictionary <string, object>(); foreach (var item in _wildcardsmap) { wildcardsmap.Add(item.Key, item.Value); } rtn.wild_cards_map = wildcardsmap; return(rtn); }
/// <summary> /// 呼叫js脚本 /// </summary> /// <param name="scriptstr"></param> /// <param name="input"></param> /// <param name="outputkey"></param> /// <param name="others"></param> /// <returns></returns> public object Call(string scriptstr, FrameDLRObject input, string outputkey, params KeyValuePair <string, object>[] others) { try { var jse = _logic.CallContext_ResourceManage.CreateInstance <HostJs>(); input = input == null?FrameDLRObject.CreateInstance() : input; var lp = others.ToList(); lp.Add(new KeyValuePair <string, object>("input", input.ToDictionary())); jse.Evaluate(scriptstr, lp.ToArray()); var obj = jse.GetOutObject(outputkey); if (obj is Dictionary <string, object> ) { return(FrameDLRObject.CreateInstance((Dictionary <string, object>)obj)); } else { return(obj); } } catch (JavascriptException jex) { var strmsg = new StringBuilder(); strmsg.AppendLine(jex.V8SourceLine); strmsg.AppendLine(jex.V8StackTrace); throw new Exception(strmsg.ToString(), jex); } }
/// <summary> /// 创建Table /// </summary> /// <param name="up"></param> /// <param name="toTable"></param> /// <param name="columns"></param> public virtual void CreateTable(UnitParameter up, string toTable, params TableColumn[] columns) { if (columns == null || columns.Length <= 0) { return; } FrameDLRObject express = FrameDLRObject.CreateInstanceFromat(@"{ $acttype : 'CreateTable', $table : {0} }", FrameDLRFlags.SensitiveCase, toTable); var pk = new List <object>(); foreach (var c in columns) { FrameDLRObject cobj = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); cobj.SetValue("$datatype", c.DataType); cobj.SetValue("$precision", c.Precision); cobj.SetValue("$scale", c.Scale); cobj.SetValue("$default", c.Default); cobj.SetValue("$isnull", c.IsPK ? false : c.AllowNull); if (c.IsPK) { pk.Add(c.Name); } express.SetValue(c.Name, cobj); } express.SetValue("$pk", pk); Excute(up, express); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var options = FrameDLRObject.CreateInstance(); //Logic参数设定 options.BusinessAssemblyName = "RestAPISample"; options.WeixinHome = "weixinhome"; //EWRA自定义模块加载 options.RestAPIModuleName = typeof(MyWebModule).FullName; //Logic参数设定 options.RestAPILogicAssemblyName = "RestAPISample"; //RestAPI模块启用定义 options.RestAPILogicBaseType = typeof(MyRestLogic); //Tag模块启动定义 options.TagAssembly = "RestAPISample"; options.RestAPIMainVersion = "v1.0"; //默认起始路由 options.DefaultStartRoute = MyConfig.GetConfiguration("Server", "DefaultStartRoute"); //设置apidoc的路由 options.APIDocRoute = MyConfig.GetConfiguration("Server", "APIDocRoute"); //设置是否显示api doc options.IsShowRestAPIDoc = BoolStd.IsNotBoolThen(MyConfig.GetConfiguration("Server", "IsShowAPIDoc"), false); //设置中间件参数 options.MiddleWareOptionsType = typeof(MyWebOptions); app.UseWeixinEWRAMiddleWare((FrameDLRObject)options); }
/// <summary> /// 根据指定的上下文执行hostjs /// </summary> /// <param name="js"></param> /// <param name="context"></param> /// <param name="outobjname"></param> /// <returns></returns> public object RunJs(string js, HostLogicContext context, string outobjname) { try { Dictionary <string, object> dic = new Dictionary <string, object>(); foreach (var item in context.AllHostJsObject) { dic.Add(item.Name, item); } context.CurrentJsEngine.Evaluate(js, dic.ToArray()); var outobj = context.CurrentJsEngine.GetOutObject(outobjname); if (outobj == null) { outobj = FrameDLRObject.CreateInstance(); } if (outobj is Dictionary <string, object> ) { return(FrameDLRObject.CreateInstance(outobj, FrameDLRFlags.SensitiveCase)); } else { return(outobj); } } finally { context.CurrentJsEngine.Release(); } }
/// <summary> /// 执行发货状态查询 /// </summary> /// <param name="hw_contract_no">华为合同号,即PO单号</param> /// <param name="cust_contract_no">中邮合同号,即PO单号</param> /// <param name="asd_start_date">华为实际发货开始时间,默认为当前时间往前推3天</param> /// <param name="asd_end_date">华为实际发货结束时间,默认为当天</param> /// <param name="shipping_status">华为发货的状态:0:unshipped,1:shipped,2:all</param> /// <param name="topage">翻页,默认第一页</param> /// <param name="pagesize">每页资料笔数,默认100</param> /// <returns></returns> public string QueryDelivery(string hw_contract_no, string cust_contract_no, DateTime?asd_start_date = null, DateTime?asd_end_date = null, string shipping_status = "1", int topage = 1, int pagesize = 100) { var url = $"{Server_URL}/asn"; var data = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); data.cust_id = Cust_ID; data.delivery_id = ""; data.packing_list_no = ""; data.hw_contract_no = hw_contract_no; data.cust_contract_no = cust_contract_no; data.cust_purchase_no = ""; data.prod_code_sale = ""; data.prod_model_ext = ""; data.cust_purchase_item = ""; data.asd_start_date = asd_start_date == null ?$"{DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd")} 00:00:00" : asd_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss"); data.asd_end_date = asd_end_date == null ? $"{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59" : asd_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss"); data.shipping_status = shipping_status; data.page_size = "" + pagesize; data.current_page = "" + topage; return(Send(url, data)); }
/// <summary> /// 异步调用微信服务 /// </summary> /// <typeparam name="RType"></typeparam> /// <param name="url"></param> /// <param name="method"></param> /// <param name="contenttype"></param> /// <param name="header"></param> /// <param name="data"></param> /// <param name="isneedcert"></param> /// <param name="callbackLA">只会调用Method为Post的方法</param> /// <param name="recorddata"></param> private void CallWeixinServerAsync <RType>(string url, string method = "POST", string contenttype = "text/json", FrameDLRObject header = null, FrameDLRObject data = null, bool isneedcert = false, string callbackLA = "", FrameDLRObject recorddata = null) { base.CallWeixinServerAsync <RType>(url, method, contenttype, header, data, isneedcert, (arg) => { _logic.CallLocalLogic(url, "POST", null, null, FrameDLRObject.CreateInstance(arg, FrameDLRFlags.SensitiveCase)); }, recorddata); }
/// <summary> /// 发货指令 /// </summary> /// <param name="hw_contract_no">华为合同号,即PO单号</param> /// <param name="items">物料数组,结构{ /// PROD_CODE_SALE:"华为产品Item,即待发货的华为物料编码,必填,来自PO单", /// PROD_CODE_CUST:"客户Item,即中邮的物料编码,非必填,来自PO单,不填时默认为空", /// CUST_PURCHASE_ITEM:"客户采购凭证号,由客户定义,匹配到客户采购凭证的唯一一行数据。后面发货状态查询时可以回传,非必填", /// CUST_PURCHASE_QUANTITY:"客户采购数量,必填", /// CUST_PURCHASE_UNIT_PRICE:"客户采购单价(含税人民币),非必填", /// SHIPPING_TO_WAREHOUSE_ID:"目标仓库编码(唯一标识)。编码为中邮的编码,必填", /// COMMENTS:"备注,非必填", /// FREE_TEXT:"扩展文本信息,用于中邮保存自己的资料信息,长度不超过1000个字符,可以保存发货单,分货单号等资料信息,火猫发货涨停查询时可以回传,非必填" /// }</param> /// <returns>如果缺少参数则返回null</returns> public string CreatDelivery(string hw_contract_no, params object[] items) { if (string.IsNullOrEmpty(hw_contract_no)) { return(null); } if (items == null && items.Length <= 0) { return(null); } var url = $"{Server_URL}/delivery/create"; var data = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); data.USER_ID = User_ID; data.CUST_ID = Cust_ID; data.HW_CONTRACT_NO = hw_contract_no; data.CUST_CONTRACT_NO = null; var list = new List <object>(); foreach (var item in items) { list.Add(FrameDLRObject.CreateInstance(item, FrameDLRFlags.SensitiveCase)); } data.ITEMS = list; return(Send(url, data)); }
public static void Test() { HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://10.15.1.245:5001/dms/jiangsu/orders_hongxun"); //HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://119.97.137.9:8080/dms/jiangsu/orders_hongxun"); //HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://localhost:5002/dms/jiangsu/orders_hongxun"); try { var orders = WebUtility.UrlEncode("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/PgoKPHJlcXVlc3Q+CgogICAgPGhlYWRlcj4KCiAgICAgICAgPHJlc3BvbnNldGltZT4yMDE4MDMxMjE1Mjg1MzwvcmVzcG9uc2V0aW1lPgoKICAgICAgICA8c3VwcGxpZXJfbnVtPjk5MTAwMDE1PC9zdXBwbGllcl9udW0+CgogICAgPC9oZWFkZXI+CgogICAgPGJvZHk+CgogICAgICAgIDxyZXN1bHQ+MDwvcmVzdWx0PgoKICAgICAgICA8cmVzdWx0cmVtYXJrPuaJp+ihjOaIkOWKnzwvcmVzdWx0cmVtYXJrPgoKICAgICAgICA8b3JkZXJfbnVtYmVyPjQ8L29yZGVyX251bWJlcj4KCiAgICAgICAgPG9yZGVyX2xpc3RzPgoKICAgICAgICAgICAgPG9yZGVyPgoKICAgICAgICAgICAgICAgIDxob25neHVuX29yZGVyX25vPum4v+i/heiuouWNleWPtzwvaG9uZ3h1bl9vcmRlcl9ubz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfbm8+QjIwMTgwMzEyMTUyMjQ5NzIwNjA3PC9vcmRlcl9ubz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfc3RhdHVzPjwvb3JkZXJfc3RhdHVzPgoKICAgICAgICAgICAgICAgIDxvcmRlcl9yZWdpb24+MTI8L29yZGVyX3JlZ2lvbj4KCiAgICAgICAgICAgICAgICA8cmVnaW9uX25hbWU+5reu5a6JPC9yZWdpb25fbmFtZT4KCiAgICAgICAgICAgICAgICA8YXJlYV9udW0+MTIxMjwvYXJlYV9udW0+CgogICAgICAgICAgICAgICAgPGFyZWFfbmFtZT7mtp/msLQ8L2FyZWFfbmFtZT4KCiAgICAgICAgICAgICAgICA8YnVpbGRfdGltZT4yMDE4MDMxMjE1MjI0OTc5NjwvYnVpbGRfdGltZT4KCiAgICAgICAgICAgICAgICA8b3JkZXJfZGVsaXZfdGltZT4yMDE4MDMxMjE1MjMwNDwvb3JkZXJfZGVsaXZfdGltZT4KCiAgICAgICAgICAgICAgICA8YnVpbGRfbmFtZT7okovlubPlubM8L2J1aWxkX25hbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX3RlbD4xODkwMDAwMDAwMDwvYnVpbGRfdGVsPgoKICAgICAgICAgICAgICAgIDxkZXB0X2NvZGU+MTIxNjQ4Mjg8L2RlcHRfY29kZT4KCiAgICAgICAgICAgICAgICA8ZGVwdF9uYW1lPua2n+awtOWVhuS4muW5v+WcuuaMh+WumuS4k+iQpeW6lzwvZGVwdF9uYW1lPgoKICAgICAgICAgICAgICAgIDxkaXN0X2NvZGU+MTIxMDQyMzA8L2Rpc3RfY29kZT4KCiAgICAgICAgICAgICAgICA8ZGlzdF9uYW1lPuabvuWNju+8iOe7j+mUgOWVhu+8iXRlc3Q8L2Rpc3RfbmFtZT4KCiAgICAgICAgICAgICAgICA8b3JkZXJfbW9uZXk+MjA8L29yZGVyX21vbmV5PgoKICAgICAgICAgICAgICAgIDxkZWxpdl9uYW1lPua3ruWuieWQiOS9nOWOhTE8L2RlbGl2X25hbWU+CgogICAgICAgICAgICAgICAgPGRlbGl2X21vYmlsZT4xMzkwNTE5NDU4MTwvZGVsaXZfbW9iaWxlPgoKICAgICAgICAgICAgICAgIDxkZWxpdl9hZGRyZXNzPuS4reWkrui3rzQw5Y+3MTA25Y2V5YWDPC9kZWxpdl9hZGRyZXNzPgoKICAgICAgICAgICAgICAgIDxpc19tZWV0aW5nPjA8L2lzX21lZXRpbmc+CgogICAgICAgICAgICAgICAgPG1lZXRpbmdfbmFtZT48L21lZXRpbmdfbmFtZT4KCiAgICAgICAgICAgICAgICA8cGF5X21vZGU+MTwvcGF5X21vZGU+CgogICAgICAgICAgICAgICAgPGFsbF9wYXlfbW9uZXk+MjA8L2FsbF9wYXlfbW9uZXk+CgogICAgICAgICAgICAgICAgPG11bHRpcGx5X3BheT4KCiAgICAgICAgICAgICAgICAgICAgPHBheT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXlfdGltZT4yMDE4MDMxMjE1MjMwNDwvcGF5X3RpbWU+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X21vbmV5PjIwPC9wYXlfbW9uZXk+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X3R5cGU+RkxLPC9wYXlfdHlwZT4KCiAgICAgICAgICAgICAgICAgICAgPC9wYXk+CgogICAgICAgICAgICAgICAgPC9tdWx0aXBseV9wYXk+CgogICAgICAgICAgICAgICAgPGl0ZW1fbGlzdD4KCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlsX251bT5TMjAxODAzMTIxNTIyNDk3MjA2MDg8L2RldGFpbF9udW0+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfdHlwZT5TUExYX1NKWkQ8L2dvb2RzX3R5cGU+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfbnVtPkpTWUQtRERTQ1NQUC1ERFNDU1hINi0wMjwvZ29vZHNfbnVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX3ByaWNlPjEwPC9nb29kc19wcmljZT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxnb29kc19jb3VudD4yPC9nb29kc19jb3VudD4KCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPgoKICAgICAgICAgICAgICAgIDwvaXRlbV9saXN0PgoKICAgICAgICAgICAgICAgIDxnaWZ0X2xpc3QvPgoKICAgICAgICAgICAgPC9vcmRlcj4KCiAgICAgICAgICAgIDxvcmRlcj4KCiAgICAgICAgICAgICAgICA8aG9uZ3h1bl9vcmRlcl9ubz7puL/ov4XorqLljZXlj7c8L2hvbmd4dW5fb3JkZXJfbm8+CgogICAgICAgICAgICAgICAgPG9yZGVyX25vPkIyMDE4MDMxMjE1MjQ0MDcyMDYxNTwvb3JkZXJfbm8+CgogICAgICAgICAgICAgICAgPG9yZGVyX3N0YXR1cz48L29yZGVyX3N0YXR1cz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfcmVnaW9uPjEyPC9vcmRlcl9yZWdpb24+CgogICAgICAgICAgICAgICAgPHJlZ2lvbl9uYW1lPua3ruWuiTwvcmVnaW9uX25hbWU+CgogICAgICAgICAgICAgICAgPGFyZWFfbnVtPjEyMTI8L2FyZWFfbnVtPgoKICAgICAgICAgICAgICAgIDxhcmVhX25hbWU+5raf5rC0PC9hcmVhX25hbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX3RpbWU+MjAxODAzMTIxNTI0NDAxOTg8L2J1aWxkX3RpbWU+CgogICAgICAgICAgICAgICAgPG9yZGVyX2RlbGl2X3RpbWU+MjAxODAzMTIxNTI0NTc8L29yZGVyX2RlbGl2X3RpbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX25hbWU+6JKL5bmz5bmzPC9idWlsZF9uYW1lPgoKICAgICAgICAgICAgICAgIDxidWlsZF90ZWw+MTg5MDAwMDAwMDA8L2J1aWxkX3RlbD4KCiAgICAgICAgICAgICAgICA8ZGVwdF9jb2RlPjEyMTY0ODI4PC9kZXB0X2NvZGU+CgogICAgICAgICAgICAgICAgPGRlcHRfbmFtZT7mtp/msLTllYbkuJrlub/lnLrmjIflrprkuJPokKXlupc8L2RlcHRfbmFtZT4KCiAgICAgICAgICAgICAgICA8ZGlzdF9jb2RlPjEyMTA0MjMwPC9kaXN0X2NvZGU+CgogICAgICAgICAgICAgICAgPGRpc3RfbmFtZT7mm77ljY7vvIjnu4/plIDllYbvvIl0ZXN0PC9kaXN0X25hbWU+CgogICAgICAgICAgICAgICAgPG9yZGVyX21vbmV5PjMwPC9vcmRlcl9tb25leT4KCiAgICAgICAgICAgICAgICA8ZGVsaXZfbmFtZT7mt67lronlkIjkvZzljoUxPC9kZWxpdl9uYW1lPgoKICAgICAgICAgICAgICAgIDxkZWxpdl9tb2JpbGU+MTM5MDUxOTQ1ODE8L2RlbGl2X21vYmlsZT4KCiAgICAgICAgICAgICAgICA8ZGVsaXZfYWRkcmVzcz7kuK3lpK7ot680MOWPtzEwNuWNleWFgzwvZGVsaXZfYWRkcmVzcz4KCiAgICAgICAgICAgICAgICA8aXNfbWVldGluZz4wPC9pc19tZWV0aW5nPgoKICAgICAgICAgICAgICAgIDxtZWV0aW5nX25hbWU+PC9tZWV0aW5nX25hbWU+CgogICAgICAgICAgICAgICAgPHBheV9tb2RlPjE8L3BheV9tb2RlPgoKICAgICAgICAgICAgICAgIDxhbGxfcGF5X21vbmV5PjMwPC9hbGxfcGF5X21vbmV5PgoKICAgICAgICAgICAgICAgIDxtdWx0aXBseV9wYXk+CgogICAgICAgICAgICAgICAgICAgIDxwYXk+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X3RpbWU+MjAxODAzMTIxNTI0NTc8L3BheV90aW1lPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHBheV9tb25leT4zMDwvcGF5X21vbmV5PgoKICAgICAgICAgICAgICAgICAgICAgICAgPHBheV90eXBlPkZMSzwvcGF5X3R5cGU+CgogICAgICAgICAgICAgICAgICAgIDwvcGF5PgoKICAgICAgICAgICAgICAgIDwvbXVsdGlwbHlfcGF5PgoKICAgICAgICAgICAgICAgIDxpdGVtX2xpc3Q+CgogICAgICAgICAgICAgICAgICAgIDxpdGVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbF9udW0+UzIwMTgwMzEyMTUyNDQwNzIwNjE2PC9kZXRhaWxfbnVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX3R5cGU+U1BMWF9TSlpEPC9nb29kc190eXBlPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX251bT5KU1lELUREU0NTUFAtRERTQ1NYSDYtMDI8L2dvb2RzX251bT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxnb29kc19wcmljZT4xMDwvZ29vZHNfcHJpY2U+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfY291bnQ+MzwvZ29vZHNfY291bnQ+CgogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4KCiAgICAgICAgICAgICAgICA8L2l0ZW1fbGlzdD4KCiAgICAgICAgICAgICAgICA8Z2lmdF9saXN0Lz4KCiAgICAgICAgICAgIDwvb3JkZXI+CgogICAgICAgIDwvb3JkZXJfbGlzdHM+CgogICAgPC9ib2R5PgoKPC9yZXF1ZXN0Pg=="); var b = ComFunc.Base64DeCode(ComFunc.UrlDecode(orders)); var d = FrameDLRObject.CreateInstance(b); byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes($"orders={orders}"); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = requestBytes.Length; req.Timeout = 60000; req.ReadWriteTimeout = 60000; Stream requestStream = req.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); string backstr = sr.ReadToEnd(); requestStream = null; sr.Close(); res.Close(); } finally { req = null; } }
private FrameDLRObject copyPOItem(dynamic source) { var rtn = FrameDLRObject.CreateInstance(); rtn.hw_contract_no = source.hw_contract_no; rtn.cust_contract_no = source.cust_contract_no; rtn.version = source.version; rtn.status = source.status; rtn.hw_frame_contract_no = source.hw_frame_contract_no; rtn.cust_frame_contract_no = source.cust_frame_contract_no; rtn.hw_sign_entity = source.hw_sign_entity; rtn.cust_sign_entity = source.cust_sign_entity; rtn.cust_type_lv1 = source.cust_type_lv1; rtn.cust_type_lv2 = source.cust_type_lv2; rtn.trade_terms = source.trade_terms; rtn.transport_mode = source.transport_mode; rtn.payment_terms = source.payment_terms; rtn.is_vat_included = source.is_vat_included; rtn.contract_amount_cny = DoubleStd.IsDouble(source.contract_amount_cny) ? DoubleStd.ParseStd(source.contract_amount_cny).Value : null; rtn.contract_amount_usd = DoubleStd.IsDouble(source.contract_amount_usd) ? DoubleStd.ParseStd(source.contract_amount_usd).Value : null; rtn.retail_sample = source.retail_sample; rtn.created_by = source.created_by; rtn.created_date = DateTimeStd.IsDateTime(source.created_date) ? DateTimeStd.ParseStd(source.created_date).Value.ToString("yyyyMMddHHmmss") : null; rtn.accepted_date = DateTimeStd.IsDateTime(source.accepted_date) ? DateTimeStd.ParseStd(source.accepted_date).Value.ToString("yyyyMMddHHmmss") : null; rtn.review_completed_date = DateTimeStd.IsDateTime(source.review_completed_date) ? DateTimeStd.ParseStd(source.review_completed_date).Value.ToString("yyyyMMddHHmmss") : null; rtn.signed_date = DateTimeStd.IsDateTime(source.signed_date) ? DateTimeStd.ParseStd(source.signed_date).Value.ToString("yyyyMMddHHmmss") : null; return(rtn); }
public static APIPointContext Create(string assemblyName, string mainversion) { var rtn = new APIPointContext(); rtn.MainVersion = mainversion; Assembly asm = Assembly.Load(new AssemblyName(assemblyName)); Type[] ts = asm.GetTypes(); var reg = new Regex(@"(?<=.)V\d+._\d+", RegexOptions.IgnoreCase); var list = ts.Where(p => p.GetTypeInfo().IsSubclassOf(typeof(PointLogic))).ToList(); foreach (var t in list.Where(p => p.GetTypeInfo().BaseType == typeof(PointLogic))) { var ple = EntryPointEntity.CreateFrom(t, list); if (!rtn._d_entry_.ContainsKey(ple.APIVersion)) { rtn._d_entry_.Add(ple.APIVersion, ple); } } rtn.RouteDesc = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); rtn.MainRouteDesc = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); foreach (var item in rtn._d_entry_) { rtn.RouteDesc.SetValue(item.Value.APIVersion, item.Value.RouteDesc); } rtn.MainRouteDesc = (FrameDLRObject)rtn.RouteDesc.GetValue(rtn.MainVersion); return(rtn); }
public string ConvertTo(object obj) { if (obj == null) { return(""); } UnitDataCollection udc = null; if (obj is UnitDataCollection) { udc = (UnitDataCollection)obj; } else { throw new Exception("QueryByPage2Json无法转化" + obj.GetType().FullName + "类型数据!"); } FrameDLRObject rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); if (udc.QueryTable != null) { rtn.SetValue("page", udc.CurrentPage + ""); rtn.SetValue("total", udc.TotalRow + ""); rtn.SetValue("rows", udc.QueryTable.Rows); } return(rtn.ToJSONString()); }
private dynamic Load(UnitParameter arg) { var rtn = FrameDLRObject.CreateInstance(); var json = arg.GetValue("__json__"); if (json != null && json is DBExpress) { var express = (DBExpress)json; var re = express.ToExpress(); var sql = ComFunc.nvl(re.GetValue("sql")); FrameDLRObject data = re.GetValue("data") != null ? (FrameDLRObject)re.GetValue("data") : FrameDLRObject.CreateInstance(); var orderby = ComFunc.nvl(re.GetValue("orderby")); foreach (var k in data.Keys) { arg.SetValue(k, data.GetValue(k)); } if (express.CurrentAct == DBExpress.ActType.QueryByPage) { rtn.sql = sql; rtn.orderby = orderby; } else { rtn.sql = sql; } } return(rtn); }
public virtual object QueryByPage(Dictionary <string, object> sqlobj, int topage, int count_per_page, Dictionary <string, object> data) { if (sqlobj == null) { sqlobj = new Dictionary <string, object>(); } var dsql = FrameDLRObject.CreateInstance(sqlobj); _up.SetValue("___host_sql___", ComFunc.nvl(dsql.sql)); _up.SetValue("___host_orderby___", ComFunc.nvl(dsql.orderby)); _up.SetValue("___host_pre___", ComFunc.nvl(dsql.presql)); _up.SetValue("___host_after___", ComFunc.nvl(dsql.aftersql)); if (data != null) { foreach (var item in data) { _up.SetValue(item.Key, item.Value); } } _up.Count_Of_OnePage = count_per_page; _up.ToPage = topage; var udc = _logic.DB.QueryByPage <HostQueryByPageUnit>(_up, ""); var list = udc.QueryData <FrameDLRObject>(); list = list == null ? new List <FrameDLRObject>() : list; var rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); rtn.data = list; rtn.TotalPage = udc.TotalPage; rtn.TotalRow = udc.TotalRow; rtn.Count_Of_OnePage = udc.Count_Of_OnePage; rtn.CurrentPage = udc.CurrentPage; return(((FrameDLRObject)rtn).ToDictionary()); }
/// <summary> /// 执行Insert操作 /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> /// <param name="columns"></param> public virtual void DoInsert <TSource>(LinqDLR2Sql <TSource> source, object columns) { if (columns == null) { throw new ArgumentNullException("columns"); } if (CurrentOperation == LinqDLR2SQLOperation.SelectJoin || CurrentOperation == LinqDLR2SQLOperation.SelectMany) { throw new NotSupportedException("当前模式不支持INSERT操作"); } FrameDLRObject columnsobj = FrameDLRObject.CreateInstance(columns); var columnsstr = ""; var valuestr = ""; foreach (var key in columnsobj.Keys) { columnsstr += $"{string.Format(SqlFlags.Column_Quatation, key)},"; valuestr += $"{Convert2Express(columnsobj.GetValue(key))},"; } columnsstr = columnsstr == "" ? "" : columnsstr.Substring(0, columnsstr.Length - 1); valuestr = valuestr == "" ? "" : valuestr.Substring(0, valuestr.Length - 1); var sql = "INSERT INTO {tables}({columns})VALUES({values})"; var alianname = string.IsNullOrEmpty(source.AliasName) ? "" : $"{source.AliasName}"; var tables = source.Table; CurrentSQL = sql.Replace("{tables}", tables).Replace("{columns}", columnsstr).Replace("{values}", valuestr); }
/// <summary> /// 发送模板消息,相关参数和回传,查看https://developers.weixin.qq.com/miniprogram/dev/api-backend/templateMessage.send.html /// </summary> /// <param name="touser"></param> /// <param name="template_id"></param> /// <param name="form_id"></param> /// <param name="page"></param> /// <param name="emphasis_keyword"></param> /// <param name="data"></param> /// <returns></returns> public FrameDLRObject SendTemplateMsg(string touser, string template_id, string form_id, string page = "", string emphasis_keyword = "", params KeyValuePair <string, string>[] data) { var url = string.Format(SendCustomeServiceMsgUrl, Access_Token); var postdata = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); postdata.touser = touser; postdata.template_id = template_id; if (!string.IsNullOrEmpty(page)) { postdata.page = page; } postdata.form_id = form_id; if (data != null) { FrameDLRObject d = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase); foreach (var item in data) { d.SetValue(item.Key, new { value = item.Value }); } postdata.data = d; } if (!string.IsNullOrEmpty(emphasis_keyword)) { postdata.emphasis_keyword = emphasis_keyword; } FrameDLRObject obj = CallWeixinServer(url, "post", "application/json", null, postdata); return(obj); }
private object copyOrderItem(dynamic source) { var rtn = FrameDLRObject.CreateInstance(); rtn.order_no = source.order_no; rtn.order_region = source.order_region; rtn.region_name = source.region_name; rtn.area_num = source.area_num; rtn.area_name = source.area_name; rtn.build_time = source.build_time; rtn.order_deliv_time = source.order_deliv_time; rtn.build_name = source.build_name; rtn.build_tel = source.build_tel; rtn.dept_code = source.dept_code; rtn.dept_name = source.dept_name; rtn.dist_code = source.dist_code; rtn.dist_name = source.dist_name; rtn.order_money = source.order_money; rtn.deliv_name = source.deliv_name; rtn.deliv_mobile = source.deliv_mobile; rtn.deliv_address = source.deliv_address; rtn.is_meeting = source.is_meeting; rtn.meeting_name = source.meeting_name; rtn.pay_mode = source.pay_mode; rtn.all_pay_money = source.all_pay_money; rtn.order_status = "HZTDFH";//待发货 rtn.hongxun_order_no = source.hongxun_order_no; return(rtn); }
object delete(LogicData arg) { var rtn = FrameDLRObject.CreateInstance(@"{ issuccess:true, msg:'操作成功' }"); var no = ComFunc.nvl(arg["no"]); BeginTrans(); var up = DB.NewDBUnitParameter(); UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{ $acttype : 'Query', $table : 'FunctionInfo', $where : { FunctionNo:{0} } }", no)); if (re.QueryTable.RowLength <= 0) { rtn.issuccess = false; rtn.msg = "待删除的功能不存在"; return(rtn); } up.SetValue("no", no); DB.NonQuery <FunctionUnit>(up, "delete"); CommitTrans(); return(rtn); }
object tree(LogicData ld) { var rtn = FrameDLRObject.CreateInstance(@"{ issuccess:true, msg:'' }"); var up = DB.NewDBUnitParameter(); var re = DB.Query <FunctionUnit>(up, "all"); var maxlevel = int.Parse(ComFunc.nvl(re.QueryTable[0, "maxlevel"])); var tree = new List <object>(); var items = re.QueryData <FrameDLRObject>(1); foreach (dynamic item in items) { if (item.functionlevel == 0) { var dobj = FrameDLRObject.CreateInstance(); dobj.text = item.functionname; dobj.url = item.url; dobj.no = item.functionno; dobj.nodes = LoadChildNodes(items, item.functionno, 1); dobj.level = item.functionlevel; dobj.remark = item.remark; tree.Add(dobj); } } rtn.data = tree; return(rtn); }
private RsaSecurityKey GetRSAPublicKey() { if (string.IsNullOrEmpty(publicKey) && !string.IsNullOrEmpty(PublicKeySavePath)) { var physicalPath = PublicKeySavePath.Replace("~", ServerRootPath); if (File.Exists(physicalPath)) { var content = File.ReadAllText(physicalPath); publicKey = content; RSAParameters rp = ((FrameDLRObject)FrameDLRObject.CreateInstance(content, FrameDLRFlags.SensitiveCase)).ToModel <RSAParameters>(Encoding.Unicode); publicSK = new RsaSecurityKey(rp); } else { GlobalCommon.Logger.WriteLog(LoggerLevel.INFO, $"Rest验证读取PublicKey文件失败,原因是目录文件{PublicKeySavePath}不存在,请给出正确的公钥文件路径(请在验证的Logic中重载PublicKeySavePath的get方法),没有公钥会导致验证失败甚至出现异常"); } } if (string.IsNullOrEmpty(publicKey)) { GlobalCommon.Logger.WriteLog(LoggerLevel.INFO, $"Rest验证公钥不存在,没有公钥会导致验证失败甚至出现异常,如果本API服务提供生成Token的功能则请不要重载PublicKeySavePath和PrivateKeySavePath两个属性的get方法或在get时返回空串,如果不是则请提供正确的PublicKeySavePath路径值"); } return(publicSK); }
/// <summary> /// 处理Response中的cookie信息 /// </summary> /// <param name="p"></param> /// <param name="d"></param> protected virtual void ProcessResponseCookie(TParameter p, TData d) { //处理cookie var cookies = (FrameDLRObject)p.ExtentionObj.cookie; var addcookies = p.ExtentionObj.cookie.add == null ? (FrameDLRObject)FrameDLRObject.CreateInstance() : (FrameDLRObject)p.ExtentionObj.cookie.add; var removecookies = p.ExtentionObj.cookie.remove == null ? (FrameDLRObject)FrameDLRObject.CreateInstance() : (FrameDLRObject)p.ExtentionObj.cookie.remove; foreach (var key in addcookies.Keys) { var item = (FrameDLRObject)addcookies.GetValue(key); var name = ComFunc.nvl(item.GetValue("name")); var value = ComFunc.nvl(item.GetValue("value")); var domain = ComFunc.nvl(item.GetValue("domain")); var expire = (DateTime)item.GetValue("expire"); CurrentContext.Response.Cookies.Append(name, value, new CookieOptions() { Expires = expire, Domain = domain }); } foreach (var key in removecookies.Keys) { var item = (FrameDLRObject)removecookies.GetValue(key); var name = ComFunc.nvl(item.GetValue("name")); CurrentContext.Response.Cookies.Delete(name); } }
/// <summary> /// 执行update操作 /// </summary> /// <typeparam name="TSource"></typeparam> /// <param name="source"></param> public virtual void DoUpdate <TSource>(LinqDLR2Sql <TSource> source, object columns) { if (columns == null) { throw new ArgumentNullException("columns"); } if (CurrentOperation == LinqDLR2SQLOperation.SelectJoin || CurrentOperation == LinqDLR2SQLOperation.SelectMany) { throw new NotSupportedException("当前模式不支持Update操作"); } FrameDLRObject columnsobj = FrameDLRObject.CreateInstance(columns); var columnsstr = ""; foreach (var key in columnsobj.Keys) { columnsstr += $"{string.Format(SqlFlags.Column_Quatation, key)}={Convert2Express(columnsobj.GetValue(key))},"; } columnsstr = columnsstr == "" ? "" : columnsstr.Substring(0, columnsstr.Length - 1); var sql = "UPDATE {tables} SET {columns} {where}"; var alianname = string.IsNullOrEmpty(source.AliasName) ? "" : $"{source.AliasName}"; var tables = source.Table; var where = (Lastwhere == null || string.IsNullOrEmpty(Lastwhere.Result)) ? "" : $"WHERE {Lastwhere.Result.Replace($"{alianname}.", "")}"; CurrentSQL = sql.Replace("{tables}", tables).Replace("{columns}", columnsstr).Replace("{where}", where); }
private dynamic GetSql(UnitParameter arg) { var rtn = FrameDLRObject.CreateInstance(); rtn.sql = ComFunc.nvl(arg["___host_sql___"]); return(rtn); }
public static void Test() { var obj = FrameDLRObject.CreateInstance(new { touser = "", toparty = "", totag = "", msgtype = "text", agentid = "", text = new { content = new object[] { new { title = "", description = "", url = "" } } }, safe = 1 }, FrameDLRFlags.SensitiveCase); var dt = DateTime.Now; var fea = FrameExposedArray.From(new object[] { "a", "b", 1, DateTime.Now, DateTime.Now.AddDays(1) }); var n = fea.String.value; var n1 = fea.String[1]; dt = DateTime.Now; fea = FrameExposedArray.From(new object[] { 2.3, 5.6, new Dictionary <string, object>(), 's', new StaticClassTest(), 1, DateTime.Now, DateTime.Now.AddDays(1) }); var n2 = fea.dictionary.value; Console.WriteLine($"time cast {(DateTime.Now - dt).TotalMilliseconds}ms"); Console.ReadKey(); }
protected override dynamic ParseCreateTable(FrameDLRObject obj) { var rtn = FrameDLRObject.CreateInstance(); var table = ""; var columns = ""; var pk = ""; var pk_template = @",PRIMARY KEY (#pkcolumns#)"; var sql = $@"CREATE TABLE `#table#`( #columns# #pk# ) ENGINE={DefaultDBEngine} DEFAULT CHARSET={DefaultDBEncoding} ; "; foreach (var k in obj.Keys) { if (k.StartsWith("$")) { if (k.ToLower() == "$table") { table = ComFunc.nvl(obj.GetValue(k)); } else if (k.ToLower() == "$pk") { var pkobj = obj.GetValue(k); var pkcolumns = ""; if (pkobj != null && pkobj is IEnumerable <object> ) { var pklist = (IEnumerable <object>)pkobj; foreach (var s in pklist) { pkcolumns += $"{s},"; } } if (pkcolumns != "") { pk = pk_template.Replace("#pkcolumns#", pkcolumns.Substring(0, pkcolumns.Length - 1)); } } } else { if (obj.GetValue(k) is FrameDLRObject) { columns += $"{parseColumnExpress(k, (FrameDLRObject)obj.GetValue(k))},"; } } } if (columns != "") { columns = columns.Substring(0, columns.Length - 1); } pk = pk.Replace("#pkname#", table); sql = sql.Replace("#table#", table).Replace("#columns#", columns).Replace("#pk#", pk); rtn.sql = sql; rtn.table = table; return(rtn); }
protected override dynamic ParseCreateTable(FrameDLRObject obj) { var rtn = FrameDLRObject.CreateInstance(); var table = ""; var columns = ""; var pk = ""; var pk_template = @",CONSTRAINT [#pkname#] PRIMARY KEY CLUSTERED (#pkcolumns# ) WITH ( IGNORE_DUP_KEY = OFF ) ON [PRIMARY]"; var sql = $@"CREATE TABLE #table# ( #columns# #pk# ) ON [PRIMARY]"; foreach (var k in obj.Keys) { if (k.StartsWith("$")) { if (k.ToLower() == "$table") { table = ComFunc.nvl(obj.GetValue(k)); } else if (k.ToLower() == "$pk") { var pkobj = obj.GetValue(k); var pkcolumns = ""; if (pkobj != null && pkobj is IEnumerable <object> ) { var pklist = (IEnumerable <object>)pkobj; foreach (var s in pklist) { pkcolumns += $"{s},"; } } if (pkcolumns != "") { pk = pk_template.Replace("#pkcolumns#", pkcolumns.Substring(0, pkcolumns.Length - 1)); } } } else { if (obj.GetValue(k) is FrameDLRObject) { columns += $@"{parseColumnExpress(k, (FrameDLRObject)obj.GetValue(k))},"; } } } if (columns != "") { columns = columns.Substring(0, columns.Length - 1); } pk = pk.Replace("#pkname#", $"PK_{table}"); sql = sql.Replace("#table#", table).Replace("#columns#", columns).Replace("#pk#", pk); rtn.sql = sql; rtn.table = table; return(rtn); }
object Login(LogicData arg) { var rtn = FrameDLRObject.CreateInstance(@"{ issuccess:true, msg:'' }"); BeginTrans(); //登录账号判断 var up = DB.NewDBUnitParameter(); up.SetValue("LoginID", arg["loginid"]); var re = DB.Query <LoginUnit>(up, "login"); if (re.QueryTable.RowLength <= 0) { rtn.issuccess = false; rtn.msg = "用户不存在"; return(rtn); } if (ComFunc.nvl(re.QueryTable[0, "LoginPass"]) != ComFunc.nvl(arg["loginpass"])) { rtn.issuccess = false; rtn.msg = "密码不正确"; return(rtn); } up.SetValue("LastLoginTime", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); DB.NonQuery <LoginUnit>(up, "updatelogintime"); //获取登录用户信息 re = DB.Query <LoginUnit>(up, "logininfo"); var roleinfo = re.QueryData <FrameDLRObject>(); var functioninfo = re.QueryData <FrameDLRObject>(1); var tree = new List <object>(); foreach (dynamic item in functioninfo) { if (item.functionlevel == 0) { var dobj = FrameDLRObject.CreateInstance(); dobj.text = item.functionname; dobj.url = item.url; dobj.no = item.functionno; dobj.nodes = LoadChildNodes(functioninfo, item.functionno, 1); dobj.level = item.functionlevel; tree.Add(dobj); } } rtn.info = FrameDLRObject.CreateInstance(); rtn.info.role = roleinfo; rtn.info.function = tree; UpdateLoginInfo(rtn.info); CommitTrans(); return(rtn); }
/// <summary> /// 将对象写入session /// </summary> /// <param name="session"></param> /// <param name="key"></param> /// <param name="value"></param> public static void SetObject(this ISession session, string key, object value) { if (value == null) { session.Remove(key); return; } var t = value.GetType(); string assemblyQualifiedName = t.AssemblyQualifiedName; var controlType = t.FullName; string assemblyInformation = assemblyQualifiedName.Substring(assemblyQualifiedName.IndexOf(",")); var assemblefullname = controlType + assemblyInformation; if (value is FrameDLRObject) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(((FrameDLRObject)value).ToJSONString())); } else if (value is IJSONable) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(((IJSONable)value).ToJSONString())); } else if (value is string) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is int) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is long) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is double) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is float) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is decimal) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else if (value is DateTime) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(((DateTime)value).ToString("yyyy/MM/dd HH:mm:ss fff"))); } else if (value is bool) { session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(ComFunc.nvl(value))); } else { FrameDLRObject dobj = FrameDLRObject.CreateInstance(value); session.SetString(key, assemblefullname + ";" + ComFunc.Base64Code(dobj.ToJSONString())); } }
/// <summary> /// 設置appSetting的值 /// </summary> /// <param name="key">鍵</param> /// <param name="value">值</param> public void SetConfiguration(string key, object value) { FrameDLRObject config = FrameDLRObject.CreateInstance(File.ReadAllText(ConfigFilePath), Constants.FrameDLRFlags.SensitiveCase); config.SetValue(key, value); File.WriteAllText(ConfigFilePath, config.ToJSONString()); _config.Reload(); }