/// <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);
            }
Exemple #2
0
        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);
                }
            }
Exemple #4
0
            /// <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);
            }
Exemple #5
0
        // 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;
            }
        }
Exemple #11
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
        }
Exemple #21
0
        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);
        }
Exemple #22
0
        /// <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);
        }
Exemple #24
0
        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);
        }
Exemple #27
0
        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);
        }
Exemple #28
0
        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()));
            }
        }
Exemple #30
0
        /// <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();
        }