public ReturnData(int code) { this.code = code; this.msg = CodeMsg.FirstOrDefault(c => c.Key == code).Value; this.data = data; this.count = 0; }
public override void OnException(HttpActionExecutedContext actionExecutedContext) { CodeMsg codeMsg; var exception = actionExecutedContext.Exception; if (exception is Error error) { codeMsg = error.CodeMsg; } else { codeMsg = CodeMsg.UnknownError().Msg(exception.Message); } var method = actionExecutedContext.Request.Method.Method; object value; if (HttpMethod.GET.Equals(method)) { value = codeMsg.Msg(); } else { value = codeMsg.Build(); } actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.BadRequest, value); }
public override void OnException(ExceptionContext filterContext) { base.OnException(filterContext); filterContext.ExceptionHandled = true; CodeMsg codeMsg; var exception = filterContext.Exception; if (exception is Error error) { codeMsg = error.CodeMsg; } else { codeMsg = CodeMsg.UnknownError().Msg(exception.Message); } var method = filterContext.HttpContext.Request.HttpMethod; if (Constants.HttpMethod.GET.Equals(method)) { filterContext.Result = codeMsg.BuildContentResult(); } else { filterContext.Result = codeMsg.BuildJsonResult(); } }
/// <summary> /// 从请求中获取token,失败则抛出异常 /// </summary> /// <param name="actionContext"></param> /// <returns></returns> /// <exception cref="Error"></exception> private static string GetToken(HttpActionContext actionContext) { var token = TryGetToken(actionContext); if (string.IsNullOrEmpty(token)) { throw CodeMsg.TokenRequired().BuildError(); } return(token); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var stringBuilder = new StringBuilder(); var modelState = filterContext.Controller.ViewData.ModelState; if (!modelState.IsValid) { foreach (var item in modelState.Values) { foreach (var error in item.Errors) { stringBuilder.AppendLine(error.ErrorMessage); } } throw CodeMsg.InvalidArg().FillArgs(stringBuilder.ToString()).BuildError(); } var actionDescriptor = filterContext.ActionDescriptor; var controllerDescriptor = actionDescriptor.ControllerDescriptor; var args = filterContext.ActionParameters; var argDefInfo = actionDescriptor.GetParameters(); foreach (var argDef in argDefInfo) { if (argDef.IsDefined(typeof(ValidArgAttribute), false)) { var validArg = argDef.GetCustomAttributes(typeof(ValidArgAttribute), false)[0] as ValidArgAttribute; if (validArg?.Required == true && args[argDef.ParameterName] == null) { stringBuilder.AppendLine(validArg.Msg); } } if (argDef.ParameterType.IsPrimitive && args[argDef.ParameterName] == null) { stringBuilder.AppendLine($"{argDef.ParameterName}不能为空"); } } if (stringBuilder.Length > 0) { throw CodeMsg.InvalidArg().FillArgs(stringBuilder.ToString()).BuildError(); } base.OnActionExecuting(filterContext); }
public override void OnActionExecuting(HttpActionContext actionContext) { var stringBuilder = new StringBuilder(); var modelState = actionContext.ModelState; if (!modelState.IsValid) { foreach (var item in modelState.Values) { foreach (var error in item.Errors) { stringBuilder.AppendLine(error.ErrorMessage); } } throw CodeMsg.InvalidArg().FillArgs(stringBuilder.ToString()).BuildError(); } var actionDescriptor = actionContext.ActionDescriptor; var controllerDescriptor = actionDescriptor.ControllerDescriptor; var args = actionContext.ActionArguments; var argDefInfo = actionDescriptor.GetParameters(); foreach (var argDef in argDefInfo) { var validArg = argDef.GetCustomAttributes <ValidArgAttribute>().FirstOrDefault(); if (validArg != null) { if (validArg.Required && args[argDef.ParameterName] == null) { stringBuilder.AppendLine(validArg.Msg); } } else if (argDef.ParameterType.IsPrimitive && args[argDef.ParameterName] == null) { stringBuilder.AppendLine($"{argDef.ParameterName}不能为空"); } } if (stringBuilder.Length > 0) { throw CodeMsg.InvalidArg().FillArgs(stringBuilder.ToString()).BuildError(); } base.OnActionExecuting(actionContext); }
public override void OnAuthorization(HttpActionContext actionContext) { base.OnAuthorization(actionContext); var actionDescriptor = actionContext.ActionDescriptor; var controllerDescriptor = actionDescriptor.ControllerDescriptor; //是否允许匿名访问 if (controllerDescriptor.GetCustomAttributes <AllowAnonymousAttribute>().Any() || actionDescriptor.GetCustomAttributes <AllowAnonymousAttribute>().Any()) { return; } var token = GetToken(actionContext); if (TokenVerifier.Verify(token) == null) { throw CodeMsg.InvalidToken().BuildError(); } }
public static Error Build(CodeMsg codeMsg) { return(new Error(codeMsg)); }
private Error(CodeMsg codeMsg) { CodeMsg = codeMsg; }