upgrade to c#12
This commit is contained in:
@@ -4,84 +4,82 @@ using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||
using System.Linq;
|
||||
using SimApi.Exceptions;
|
||||
using SimApi.Attributes;
|
||||
|
||||
namespace SimApi.Controllers
|
||||
namespace SimApi.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// 基础控制器,所有控制器均继承本控制器
|
||||
/// 1. 自动验证请求参数
|
||||
/// 2. 报错返回
|
||||
/// 3. 错误回馈页面
|
||||
/// </summary>
|
||||
public class SimApiBaseController : Controller
|
||||
{
|
||||
/// <summary>
|
||||
/// 基础控制器,所有控制器均继承本控制器
|
||||
/// 1. 自动验证请求参数
|
||||
/// 2. 报错返回
|
||||
/// 3. 错误回馈页面
|
||||
/// 当前登录用户的ID
|
||||
/// </summary>
|
||||
public class SimApiBaseController : Controller
|
||||
protected SimApiLoginItem LoginInfo => (SimApiLoginItem)HttpContext.Items["LoginInfo"];
|
||||
|
||||
/// <summary>
|
||||
/// 验证请求参数
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
public override void OnActionExecuting(ActionExecutingContext context)
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前登录用户的ID
|
||||
/// </summary>
|
||||
protected SimApiLoginItem LoginInfo => (SimApiLoginItem)HttpContext.Items["LoginInfo"];
|
||||
|
||||
/// <summary>
|
||||
/// 验证请求参数
|
||||
/// </summary>
|
||||
/// <param name="context"></param>
|
||||
public override void OnActionExecuting(ActionExecutingContext context)
|
||||
if (!context.ModelState.IsValid)
|
||||
{
|
||||
if (!context.ModelState.IsValid)
|
||||
foreach (var item in context.ModelState.Values.Where(item =>
|
||||
item.ValidationState == ModelValidationState.Invalid))
|
||||
{
|
||||
foreach (var item in context.ModelState.Values.Where(item =>
|
||||
item.ValidationState == ModelValidationState.Invalid))
|
||||
{
|
||||
Error(400, item.Errors.First().ErrorMessage);
|
||||
break;
|
||||
}
|
||||
Error(400, item.Errors.First().ErrorMessage);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 错误返回
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述(若是常规错误,代码可自动带取描述)</param>
|
||||
/// <returns></returns>
|
||||
protected static void Error(int code = 500, string message = "")
|
||||
{
|
||||
throw new SimApiException(code, message);
|
||||
}
|
||||
/// <summary>
|
||||
/// 错误返回
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述(若是常规错误,代码可自动带取描述)</param>
|
||||
/// <returns></returns>
|
||||
protected static void Error(int code = 500, string message = "")
|
||||
{
|
||||
throw new SimApiException(code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测条件,根据条件返回报错
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
protected static void ErrorWhen(bool condition, int code = 500, string message = "")
|
||||
/// <summary>
|
||||
/// 检测条件,根据条件返回报错
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
protected static void ErrorWhen(bool condition, int code = 500, string message = "")
|
||||
{
|
||||
if (condition)
|
||||
{
|
||||
if (condition)
|
||||
{
|
||||
Error(code, message);
|
||||
}
|
||||
Error(code, message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测给定的变量是否为NUll
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
protected static void ErrorWhenNull(object condition, int code = 404, string message = "")
|
||||
{
|
||||
ErrorWhen(condition == null, code, message);
|
||||
}
|
||||
/// <summary>
|
||||
/// 检测给定的变量是否为NUll
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
protected static void ErrorWhenNull(object condition, int code = 404, string message = "")
|
||||
{
|
||||
ErrorWhen(condition == null, code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 上传文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected SimApiBaseResponse<string> UploadFile()
|
||||
{
|
||||
return new SimApiBaseResponse<string>(null);
|
||||
}
|
||||
/// <summary>
|
||||
/// 上传文件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected SimApiBaseResponse<string> UploadFile()
|
||||
{
|
||||
return new SimApiBaseResponse<string>(null);
|
||||
}
|
||||
}
|
||||
@@ -1,60 +1,51 @@
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SimApi.Attributes;
|
||||
using SimApi.Communications;
|
||||
using SimApi.Helpers;
|
||||
|
||||
namespace SimApi.Controllers
|
||||
namespace SimApi.Controllers;
|
||||
|
||||
[ApiExplorerSettings(GroupName = "api")]
|
||||
public class SimApiCommonController(SimApiAuth auth) : SimApiBaseController
|
||||
{
|
||||
[ApiExplorerSettings(GroupName = "api")]
|
||||
public class YYCommonController : SimApiBaseController
|
||||
/// <summary>
|
||||
/// 错误回馈页面
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("exception/{code:int}")]
|
||||
[ApiExplorerSettings(IgnoreApi = true)]
|
||||
public SimApiBaseResponse ExceptionHandler(int code)
|
||||
{
|
||||
private SimApiAuth Auth { get; }
|
||||
return new SimApiBaseResponse(code);
|
||||
}
|
||||
|
||||
public YYCommonController(SimApiAuth auth)
|
||||
/// <summary>
|
||||
/// 检测用户登陆的控制器
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/check"), SimApiDoc("认证", "检测登陆")]
|
||||
public SimApiBaseResponse<string> CheckLogin()
|
||||
{
|
||||
ErrorWhenNull(LoginInfo, 401);
|
||||
return new SimApiBaseResponse<string>(LoginInfo.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 退出登陆
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/logout"), SimApiDoc("认证", "退出登陆")]
|
||||
public SimApiBaseResponse Logout()
|
||||
{
|
||||
string token = null;
|
||||
|
||||
if (Request.Headers.ContainsKey("Token"))
|
||||
{
|
||||
Auth = auth;
|
||||
token = Request.Headers["Token"];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 错误回馈页面
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("exception/{code:int}")]
|
||||
[ApiExplorerSettings(IgnoreApi = true)]
|
||||
public SimApiBaseResponse ExceptionHandler(int code)
|
||||
{
|
||||
return new SimApiBaseResponse(code);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测用户登陆的控制器
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/check"), SimApiDoc("认证", "检测登陆")]
|
||||
public SimApiBaseResponse<string> CheckLogin()
|
||||
{
|
||||
ErrorWhenNull(LoginInfo, 401);
|
||||
return new SimApiBaseResponse<string>(LoginInfo.Id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 退出登陆
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("/auth/logout"), SimApiDoc("认证", "退出登陆")]
|
||||
public SimApiBaseResponse Logout()
|
||||
{
|
||||
string token = null;
|
||||
|
||||
if (Request.Headers.ContainsKey("Token"))
|
||||
{
|
||||
token = Request.Headers["Token"];
|
||||
}
|
||||
|
||||
Auth.Logout(token);
|
||||
return new SimApiBaseResponse();
|
||||
}
|
||||
auth.Logout(token);
|
||||
return new SimApiBaseResponse();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user