btcpayserver/BTCPayServer/Extensions/ModelStateExtensions.cs

30 lines
869 B
C#
Raw Normal View History

using System;
using System.Linq.Expressions;
2019-10-03 18:00:07 +09:00
using Microsoft.AspNetCore.Mvc;
#if NETCOREAPP21
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;
2019-10-03 18:00:07 +09:00
#else
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#endif
namespace BTCPayServer
{
public static class ModelStateExtensions
{
public static void AddModelError<TModel, TProperty>(this TModel source,
Expression<Func<TModel, TProperty>> ex,
string message,
2019-10-03 18:00:07 +09:00
Controller controller)
{
2019-10-03 18:00:07 +09:00
#if NETCOREAPP21
var key = ExpressionHelper.GetExpressionText(ex);
2019-10-03 18:00:07 +09:00
#else
var provider = (ModelExpressionProvider)controller.HttpContext.RequestServices.GetService(typeof(ModelExpressionProvider));
var key = provider.GetExpressionText(ex);
#endif
controller.ModelState.AddModelError(key, message);
}
}
}