示例#1
0
            /// <summary>
            /// 呼叫本地logic
            /// </summary>
            /// <param name="logic"></param>
            /// <param name="action"></param>
            /// <param name="p"></param>
            /// <returns></returns>
            public object CallLocalLogic(string logic, string action, FrameDLRObject p)
            {
                var copyp = (WebParameter)_logic.CallContext_Parameter.WebParam.Clone();
                var copyd = (GoData)_logic.CallContext_DataCollection.WebData.Clone();

                copyp.RequestResourceName = logic;
                copyp.Action = action;
                ResourceManage rema = new ResourceManage();

                copyp.SetValue(ParameterKey.RESOURCE_MANAGER, rema);
                var defaulttoken = TransactionToken.NewToken();

                copyp.TransTokenList.Add(defaulttoken);
                copyp.SetValue(ParameterKey.TOKEN, defaulttoken);
                copyp.SetValue("IsAjaxAsync", false);
                if (p != null)
                {
                    foreach (var key in p.Keys)
                    {
                        copyp.SetValue(DomainKey.CUSTOMER_PARAMETER, key, p.GetValue(key));
                    }
                }

                return(CallLocalLogic(logic, action, copyp, copyd));
            }
示例#2
0
        public TransactionToken BeginTrans(FrameIsolationLevel level)
        {
            TransactionToken newtoken = TransactionToken.NewToken();

            newtoken.Begin();
            _p.TransTokenList.Add(newtoken);
            return(newtoken);
        }
示例#3
0
        public override T Clone <T>()
        {
            var rtn = base.Clone <T>();

            rtn.SetValue(ParameterKey.TOKEN, TransactionToken.NewToken());
            rtn.SetValue(ParameterKey.RESOURCE_MANAGER, new ResourceManage());
            return(rtn);
        }
        /// <summary>
        /// 复制对象
        /// </summary>
        /// <returns></returns>
        public override object Clone()
        {
            var t   = this.GetType();
            var rtn = (ParameterStd)Activator.CreateInstance(t);

            rtn.SetValue(ParameterKey.TOKEN, TransactionToken.NewToken());
            rtn.SetValue(ParameterKey.RESOURCE_MANAGER, new ResourceManage());
            return(rtn);
        }
示例#5
0
        protected virtual void BeforeProcess(TParameter p, TData d)
        {
            //获取请求的资源和参数
            ResourceManage rema = new ResourceManage();

            p.SetValue(ParameterKey.RESOURCE_MANAGER, rema);
            var defaulttoken = TransactionToken.NewToken();

            p.TransTokenList.Add(defaulttoken);
            p.SetValue(ParameterKey.TOKEN, defaulttoken);
            p.SetValue("IsAjaxAsync", false);

            ProcessRequestInfo(p, d);
            ProcessRequestSession(p, d);
            ProcessResponseCookie(p, d);
        }
        protected virtual void BeforeProcess(TParameter p, TData d)
        {
            //获取请求的资源和参数
            ResourceManage rema = new ResourceManage();

            p.SetValue(ParameterKey.RESOURCE_MANAGER, rema);
            var defaulttoken = TransactionToken.NewToken();

            p.TransTokenList.Add(defaulttoken);
            p.SetValue(ParameterKey.TOKEN, defaulttoken);
            p.RequestUri         = new Uri($"{p.CurrentHttpContext.Request.Scheme}://{p.CurrentHttpContext.Request.Host}{p.CurrentHttpContext.Request.Path}{p.CurrentHttpContext.Request.QueryString}");
            p.RequestRoute       = p.CurrentHttpContext.Request.Path.Value;
            p.RestResourcesArray = p.CurrentHttpContext.Request.Path.Value.Split('/');

            ProcessRequestInfo(p, d);
            ProcessRequestHeader(p, d);
        }
示例#7
0
        protected virtual void Init(WP p, WD d)
        {
            //获取请求的资源和参数
            ResourceManage rema = new ResourceManage();

            p.SetValue <ResourceManage>(ParameterKey.RESOURCE_MANAGER, rema);
            p.SetValue <TransactionToken>(ParameterKey.TOKEN, TransactionToken.NewToken());
            if (p.ExtentionObj.args != null)
            {
                if (p.ExtentionObj.args.Length > 0)
                {
                    string   reqstr = ComFunc.nvl(p.ExtentionObj.args[0]);
                    string[] arr    = reqstr.Split('.');
                    p[ParameterKey.LOGIC]  = arr[0];
                    p[ParameterKey.ACTION] = arr.Length > 1 ? arr[1] : "";
                }
            }
        }
        protected virtual void BeforeProcess(TParameter p, TData d)
        {
            //获取请求的资源和参数
            ResourceManage rema = new ResourceManage();

            p.SetValue(ParameterKey.RESOURCE_MANAGER, rema);
            var defaulttoken = TransactionToken.NewToken();

            p.TransTokenList.Add(defaulttoken);
            p.SetValue(ParameterKey.TOKEN, defaulttoken);
            p.SetValue("IsAjaxAsync", IsAjaxAsync);
            p.RequestUri = new Uri($"{p.CurrentHttpContext.Request.Scheme}://{p.CurrentHttpContext.Request.Host}{p.CurrentHttpContext.Request.Path}{(p.CurrentHttpContext.Request.QueryString.Value)}");
            GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, $"excute request URI:{CurrentContext.Request.Method} \"{p.RequestUri}\"");

            ProcessRequestPath(p, d);
            ProcessRequestHeader(p, d);
            ProcessRequestInfo(p, d);
            ProcessRequestSession(p, d);
            ProcessRequestCookie(p, d);
            ////hostview的引擎
            //p.ExtentionObj.hostviewengine = new HostJsView();
        }
示例#9
0
        protected virtual void Init(HttpContext context, WP p, WD d)
        {
            //获取请求的资源和参数
            ResourceManage rema = new ResourceManage();

            p.SetValue <ResourceManage>(ParameterKey.RESOURCE_MANAGER, rema);
            var defaulttoken = TransactionToken.NewToken();

            p.TransTokenList.Add(defaulttoken);
            p.SetValue <TransactionToken>(ParameterKey.TOKEN, defaulttoken);
            p.SetValue("IsAjaxAsync", IsAjaxAsync);
            //设置serverinfo
            p[DomainKey.APPLICATION_ENVIRONMENT, "server_servername"] = context.Server.MachineName;
            p[DomainKey.APPLICATION_ENVIRONMENT, "serverinfo_ip"]     = context.Request.ServerVariables["LOCAl_ADDR"];
            //设置clientinfo
            var ip = "";

            if (context.Request.ServerVariables["HTTP_VIA"] != null)          // using proxy
            {
                ip = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; // Return real client IP.
            }
            else// not using proxy or can't get the Client IP
            {
                ip = context.Request.ServerVariables["REMOTE_ADDR"]; //While it can't get the Client IP, it will return proxy IP.
            }
            p[DomainKey.APPLICATION_ENVIRONMENT, "clientinfo_ip"]             = ip;
            p[DomainKey.APPLICATION_ENVIRONMENT, "clientinfo_browserversion"] = context.Request.Browser.Version;
            p[DomainKey.APPLICATION_ENVIRONMENT, "clientinfo_platform"]       = context.Request.Browser.Platform;
            p[DomainKey.APPLICATION_ENVIRONMENT, "clientinfo_userhostname"]   = context.Request.UserHostName;
            p.IsNeedSessionAbandon = false;
            p.IsWebSocket          = context.IsWebSocketRequest;
            //hostview的引擎
            p.ExtentionObj.hostviewengine = new HostJsView();
            lock (lockobj)
            {
                Prepare(context, ref p, ref d);
            }
        }
示例#10
0
 public ParameterStd()
 {
     SetValue(ParameterKey.TOKEN, TransactionToken.NewToken());
     SetValue(ParameterKey.RESOURCE_MANAGER, new ResourceManage());
 }