Files
mixtape/zero.Core/Validation/ValidatorCamelCasePropertyResolver.cs
T

33 lines
827 B
C#

using FluentValidation.Internal;
using System;
using System.Linq.Expressions;
using System.Reflection;
using zero.Core.Extensions;
namespace zero.Core.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;
}
}
}