Esempio n. 1
0
        public override object InvokeResult(object rq, Func <Type, object> objectCtor)
        {
            var request  = rq as RequestJsonMessage;
            var response = new ResponseJsonMessage();

            try
            {
                var msgBase = new Core.Remoting.MessageBase()
                {
                    Args = request.Args, Method = request.Method, Service = request.Service, Token = request.Token, ApiPrefix = request.ApiPrefix
                };
                var errorInfo = InvokeMessage(msgBase, out object result, out Dictionary <int, object> outs, out string token, objectCtor);
                if (errorInfo != null)
                {
                    return(ResponseJsonMessage.CreateError(errorInfo.msg, errorInfo.code));
                }
                response.SetData(result);
                response.Success = true;
                response.Outs    = outs;
                if (!string.IsNullOrEmpty(token))//登录方法后返回新TOKEN
                {
                    response.Token = token;
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Msg     = ex.Message;
                Console.WriteLine(ex.ToString());
                CRL.Core.EventLog.Log(ex.ToString(), request.Service);
                return(ResponseJsonMessage.CreateError(ex.Message + $" 在{request.Service}/{request.Method}", "500"));
            }

            return(response);
        }
Esempio n. 2
0
        public object InvokeResult2(IChannelHandlerContext ctx, object rq, Func <Type, object> getArgs = null)
        {
            var request  = rq as RequestJsonMessage;
            var response = new ResponseJsonMessage();

            try
            {
                var msgBase = new Core.Remoting.MessageBase()
                {
                    Args = request.Args, Method = request.Method, Service = request.Service, Token = request.Token
                };
                var errorInfo = InvokeMessage(msgBase, out object result, out Dictionary <int, object> outs, out string token, getArgs);
                if (errorInfo != null)
                {
                    return(ResponseJsonMessage.CreateError(errorInfo.msg, errorInfo.code));
                }
                response.SetData(result);
                response.Success = true;
                response.Outs    = outs;
                if (!string.IsNullOrEmpty(token))//登录方法后返回新TOKEN
                {
                    response.Token = token;
                    var arry = response.Token.Split('@');
                    AddClient(ctx, arry[0]);
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Msg     = ex.Message;
                Console.WriteLine(ex.ToString());
                CRL.Core.EventLog.Log(ex.ToString(), request.Service);
                return(ResponseJsonMessage.CreateError(ex.Message + $" 在{request.Service}/{request.Method}", "500"));
            }

            return(response);
        }