/// <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); } }
/// <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); } }