Files
mixtape/zero.Core/Validation/ValidatorCamelCasePropertyResolver.cs
T
2021-11-20 13:52:28 +01:00

29 lines
737 B
C#

using FluentValidation.Internal;
using System.Linq.Expressions;
using System.Reflection;
namespace zero.Validation;
public class ValidatorCamelCasePropertyResolver
{
public static string ResolvePropertyName(Type type, MemberInfo memberInfo, LambdaExpression expression)
{
return DefaultPropertyNameResolver(type, memberInfo, expression).ToCamelCaseId();
}
private static string DefaultPropertyNameResolver(Type type, MemberInfo memberInfo, LambdaExpression expression)
{
if (expression != null)
{
var chain = PropertyChain.FromExpression(expression);
if (chain.Count > 0) return chain.ToString();
}
if (memberInfo != null)
{
return memberInfo.Name;
}
return null;
}
}