Пример #1
0
        protected override void DoProcess(P p, D d)
        {
            LogicData ld = new LogicData();

            //统一写入INPUT_PARAMETER,可以提高logic的通用性
            //添加querystring
            foreach (var s in p.Domain(DomainKey.QUERY_STRING))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //添加postback数据
            foreach (var s in p.Domain(DomainKey.POST_DATA))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //添加上传的文件
            foreach (var s in p.Domain(DomainKey.UPDATE_FILE))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //传入的参数
            foreach (var s in p.Domain(DomainKey.INPUT_PARAMETER))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //自定义的参数
            foreach (var s in p.Domain(DomainKey.CUSTOMER_PARAMETER))
            {
                ld.SetValue(s.Key, s.Value);
            }
            ld.WebSocketRecieveData = p[DomainKey.POST_DATA, "ws_data"];

            DoInvoke(p, d, ld);
        }
Пример #2
0
        protected override void DoProcess(GoBusiParameter p, GoBusiData d)
        {
            var func = GetFunction(p.CallAction);

            if (func != null)
            {
                LogicData ld = new LogicData();
                //添加querystring
                foreach (var s in p.WebParam.Domain(DomainKey.QUERY_STRING))
                {
                    ld.SetValue(s.Key, s.Value);
                }
                //添加postback数据
                foreach (var s in p.WebParam.Domain(DomainKey.POST_DATA))
                {
                    ld.SetValue(s.Key, s.Value);
                }
                //添加上传的文件
                foreach (var s in p.WebParam.Domain(DomainKey.UPDATE_FILE))
                {
                    ld.SetValue(s.Key, s.Value);
                }
                //传入的参数
                foreach (var s in p.WebParam.Domain(DomainKey.INPUT_PARAMETER))
                {
                    ld.SetValue(s.Key, s.Value);
                }
                //自定义的参数
                foreach (var s in p.WebParam.Domain(DomainKey.CUSTOMER_PARAMETER))
                {
                    ld.SetValue(s.Key, s.Value);
                }
                ld.WebSocketRecieveData = p.WebParam[DomainKey.POST_DATA, "ws_data"];
                d.WebData.ResponseData  = func(ld);

                if (d.WebData.ContentType == GoResponseDataType.RazorView)
                {
                    if (d.WebData.ResponseData == null)
                    {
                        d.WebData.ResponseData = FrameDLRObject.CreateInstance();
                    }
                    if (d.WebData.MvcModuleData == null)
                    {
                        d.WebData.MvcModuleData = d.WebData.ResponseData;
                    }
                }
            }
        }
Пример #3
0
 public InputObject(WebBaseLogic <WebParameter, GoData> logic)
 {
     _logic = logic;
     _ld    = new LogicData();
     if (_logic.CallContext_Parameter != null)
     {
         //添加querystring
         foreach (var s in _logic.CallContext_Parameter.Domain(DomainKey.QUERY_STRING))
         {
             _ld.SetValue(s.Key, s.Value);
         }
         //添加postback数据
         foreach (var s in _logic.CallContext_Parameter.Domain(DomainKey.POST_DATA))
         {
             _ld.SetValue(s.Key, s.Value);
         }
     }
 }
Пример #4
0
        protected override void DoProcess(GoBusiParameter p, GoBusiData d)
        {
            lock (lockobj)
            {
                if (!_method.ContainsKey(this.Name))
                {
                    _method.Add(this.Name, new Dictionary <string, MethodInfo>());
                }
                if (_method[this.Name].Count <= 0)
                {
                    var t       = this.GetType();
                    var methods = t.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
                    foreach (var m in methods)
                    {
                        var parray = m.GetParameters();
                        if (parray.Length == 1 && (parray[0].ParameterType.FullName == typeof(LogicData).FullName))
                        {
                            _method[this.Name].Add(m.Name.ToLower(), m);
                        }
                    }
                }
            }

            LogicData ld = new LogicData();

            //添加querystring
            foreach (var s in p.WebParam.Domain(DomainKey.QUERY_STRING))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //添加postback数据
            foreach (var s in p.WebParam.Domain(DomainKey.POST_DATA))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //添加上传的文件
            foreach (var s in p.WebParam.Domain(DomainKey.UPDATE_FILE))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //传入的参数
            foreach (var s in p.WebParam.Domain(DomainKey.INPUT_PARAMETER))
            {
                ld.SetValue(s.Key, s.Value);
            }
            //自定义的参数
            foreach (var s in p.WebParam.Domain(DomainKey.CUSTOMER_PARAMETER))
            {
                ld.SetValue(s.Key, s.Value);
            }
            object result = null;

            p.CallAction = p.CallAction == "" ? "load" : p.CallAction;
            if (_method[Name].ContainsKey(p.CallAction.ToLower()))
            {
                if (!ExposedObjectHelper.TryInvoke(_method[Name][p.CallAction.ToLower()], this, new object[] { ld }, out result, true))
                {
                    throw new Exception($"方法{Name}.{p.CallAction}执行失败");
                }
            }
            else
            {
                GlobalCommon.Logger.WriteLog(LoggerLevel.ERROR, $"{Name}的Logic缺少名为{p.CallAction}的方法,请在{Name}中定义{p.CallAction}方法");
            }
            d.WebData.ResponseData = result;

            if (d.WebData.ContentType == GoResponseDataType.RazorView)
            {
                if (d.WebData.ResponseData == null)
                {
                    d.WebData.ResponseData = FrameDLRObject.CreateInstance();
                }
                if (d.WebData.MvcModuleData == null)
                {
                    d.WebData.MvcModuleData = d.WebData.ResponseData;
                }
            }
        }