public static ParameterValidationError Validate(
object pv_objInstance,
PropertyInfo pv_objPropertyInfo)
{
ArgumentAssert.IsGenericNotNull<object>(pv_objInstance, "pv_objInstance");
ArgumentAssert.IsGenericNotNull<PropertyInfo>(pv_objPropertyInfo, "pv_objPropertyInfo");
ParameterValidationError objResult = ParameterValidationError.CreateValid();
object objValue = null;
ProcessParameterAttribute objAttribute = null;
try
{
List<ProcessParameterAttribute> objAttributes =
new List<ProcessParameterAttribute>(
(ProcessParameterAttribute[])
pv_objPropertyInfo.GetCustomAttributes(
typeof(ProcessParameterAttribute), false));
if (objAttributes.Count > 0)
{
objAttribute = objAttributes[0];
objValue = pv_objPropertyInfo.GetValue(pv_objInstance, new object[0]);
if (objValue == null && objAttribute.m_blnParameterRequired)
{
return ParameterValidationError.CreateNotValid(string.Format(
Helpers.ResourceHelper.GetResource(CANNOT_BE_NULL_RESOURCE_ID),
pv_objPropertyInfo.Name));
}
if (objAttribute.m_strValidationExpression != ".*")
{
System.Text.RegularExpressions.Regex objRegex =
new System.Text.RegularExpressions.Regex(objAttribute.m_strValidationExpression);
if (!objRegex.IsMatch(objValue.ToString()))
{
return ParameterValidationError.CreateNotValid(string.Format(
Helpers.ResourceHelper.GetResource(DOES_NOT_MATCH_EXPRESSION_RESOURCE_ID),
pv_objPropertyInfo.Name));
}
}
}
}
catch(Exception objException)
{
ParameterValidationError.CreateNotValid(objException.ToString());
}
return objResult;
}