
Untitled
By: a guest on
Apr 29th, 2012 | syntax:
None | size: 1.05 KB | hits: 13 | expires: Never
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace AppWeb.Attribute
{
[AttributeUsage(AttributeTargets.Class)]
public class ComparaPropriedadesAttribute : ValidationAttribute
{
public string PrimeiroCampo { get; private set; }
public string SegundoCampo { get; private set; }
public ComparaPropriedadesAttribute(string primeiroCampo, string segundoCampo)
{
this.PrimeiroCampo = primeiroCampo;
this.SegundoCampo = segundoCampo;
}
public override bool IsValid(object value)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
object primeiroValor = properties.Find(PrimeiroCampo, true).GetValue(value);
object segundoValor = properties.Find(SegundoCampo, true).GetValue(value);
if (primeiroValor == null || segundoValor == null)
{
return false;
}
return primeiroValor.Equals(segundoValor);
}
}
}