Example #1
0
        /// <summary>
        /// Body传递关键参数处理方法
        /// </summary>
        /// <param name="controller">控制器</param>
        /// <param name="baseApi">传入参数</param>
        /// <returns></returns>
        private object BodyBussResults(Controller controller, BaseApi baseApi)
        {
            var route           = "";
            var action          = "";
            var routeController = controller.RouteData.Values["controller"].ToString();
            var routeAction     = controller.RouteData.Values["action"].ToString();

            route  = Global.ROUTE_PX + "/" + routeController + "/" + routeAction + "/" + baseApi.method;
            action = routeAction.Replace("/", "");
            Message msg = null;

            switch (baseApi.GetCheckType())
            {
            case CheckType.Open:
                break;

            case CheckType.Token:
                msg = CheckToken(baseApi, true, route);
                break;

            case CheckType.OpenToken:
                msg = CheckToken(baseApi, false, route);
                break;

            case CheckType.Sign:
                msg = CheckSign(baseApi, route);
                break;

            default:
                break;
            }

            if (msg != null)
            {
                return(new ResultsJson(msg, null));
            }
            var        obj        = bussList[baseApi.GetApiType()];
            MethodInfo methodInfo = obj.GetType().GetMethod("Do_" + baseApi.method);

            if (methodInfo == null)
            {
                return(new ResultsJson(new Message(CodeMessage.InvalidMethod, "InvalidMethod"), null));
            }
            else
            {
                Message message = null;
                object  data    = null;
                try
                {
                    data = methodInfo.Invoke(obj, new object[] { baseApi });
                }
                catch (Exception ex)
                {
                    if (ex.InnerException.GetType() == typeof(ApiException))
                    {
                        ApiException apiException = (ApiException)ex.InnerException;
                        message = new Message(apiException.code, apiException.msg);
                    }
                    else
                    {
                        message = new Message(CodeMessage.InnerError, "InnerError");
                    }
                }
                ResultsJson resultsJson = new ResultsJson(message, data);
                return(resultsJson);
            }
        }
Example #2
0
        /// <summary>
        /// Header传递关键参数处理方法
        /// </summary>
        /// <param name="controller">控制器</param>
        /// <param name="baseApi">传入参数</param>
        /// <returns></returns>
        private object HeaderBussResults(Controller controller, BaseApi baseApi)
        {
            var route           = "";
            var action          = "";
            var routeController = controller.RouteData.Values["controller"].ToString();
            var routeAction     = controller.RouteData.Values["action"].ToString();

            route  = Global.ROUTE_PX + "/" + routeController + "/" + routeAction;
            action = routeAction.Replace("/", "");

            if (controller.Request.Headers.ContainsKey("userid"))
            {
                baseApi.code = controller.Request.Headers["userid"].ToString();
            }
            if (controller.Request.Headers.ContainsKey("token"))
            {
                baseApi.token = controller.Request.Headers["token"].ToString();
            }
            if (controller.Request.Headers.ContainsKey("sign") && controller.Request.Headers.ContainsKey("nonceStr"))
            {
                baseApi.sign     = controller.Request.Headers["sign"].ToString();
                baseApi.nonceStr = controller.Request.Headers["nonceStr"].ToString();
            }

            Message msg = null;

            switch (baseApi.GetCheckType())
            {
            case CheckType.Open:
                break;

            case CheckType.Token:
                msg = CheckToken(baseApi, true, route);
                break;

            case CheckType.OpenToken:
                msg = CheckToken(baseApi, false, route);
                break;

            case CheckType.Sign:
                msg = CheckSign(baseApi, route);
                break;

            default:
                break;
            }

            if (msg != null)
            {
                controller.Response.Headers.Add("code", ((int)msg.code).ToString());
                controller.Response.Headers.Add("msg", msg.msg);
                return("");
            }
            var        obj        = bussList[baseApi.GetApiType()];
            MethodInfo methodInfo = obj.GetType().GetMethod("Do_" + action);

            if (methodInfo == null)
            {
                controller.Response.Headers.Add("code", ((int)CodeMessage.InvalidMethod).ToString());
                controller.Response.Headers.Add("msg", "InvalidMethod");
                return("");
            }
            else
            {
                Message message = null;
                object  data    = null;
                try
                {
                    data = methodInfo.Invoke(obj, new object[] { baseApi });
                }
                catch (Exception ex)
                {
                    if (ex.InnerException.GetType() == typeof(ApiException))
                    {
                        ApiException apiException = (ApiException)ex.InnerException;
                        message = new Message(apiException.code, apiException.msg);
                    }
                    else
                    {
                        message = new Message(CodeMessage.InnerError, "InnerError");
                    }
                }
                if (message != null)
                {
                    controller.Response.Headers.Add("code", ((int)message.code).ToString());
                    controller.Response.Headers.Add("msg", message.msg);
                }
                else
                {
                    controller.Response.Headers.Add("code", ((int)CodeMessage.OK).ToString());
                    controller.Response.Headers.Add("msg", "");
                }

                return(data);
            }
        }