using NCC.DataValidation;
using NCC.UnifyResult.Internal;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System.Threading.Tasks;
namespace NCC.UnifyResult
{
///
/// 规范化结果提供器
///
public interface IUnifyResultProvider
{
///
/// 异常返回值
///
///
///
///
IActionResult OnException(ExceptionContext context, ExceptionMetadata metadata);
///
/// 成功返回值
///
///
///
///
IActionResult OnSucceeded(ActionExecutedContext context, object data);
///
/// 验证失败返回值
///
///
///
///
IActionResult OnValidateFailed(ActionExecutingContext context, ValidationMetadata metadata);
///
/// 拦截返回状态码
///
///
///
///
///
Task OnResponseStatusCodes(HttpContext context, int statusCode, UnifyResultSettingsOptions unifyResultSettings = default);
}
}