using System; using System.Linq.Expressions; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.ViewFeatures; namespace BTCPayServer { public static class ModelStateExtensions { public static void AddModelError(this TModel source, Expression> ex, string message, ControllerBase controller) { var provider = (ModelExpressionProvider)controller.HttpContext.RequestServices.GetService(typeof(ModelExpressionProvider)); var key = provider.GetExpressionText(ex); controller.ModelState.AddModelError(key, message); } } }