con anotaciones de datos ahora es fácil de localizar mensajes de error utilizando archivos Resource.resx así por ejemplo:¿Cuál es la mejor forma de localizar errores de anotación de datos no con ASP.NET MVC 3?
public class Student
{
. . .
[Required(ErrorMessageResourceName ="Required",
ErrorMessageResourceType = typeof(StudentResources))]
[StringLength(16)]
[Display(Name = "FirstName", ResourceType = typeof(StudentResources))]
public string FirstName { get; set; }
. . .
}
Ahora, supongamos que quiero comprobar si un estudiante ya ha realizado un pago por un mes dado y año:
public bool CheckIfAlreadyPaid(Payment payment)
{
return repository.GetPayments().Any(p => p.StudentId == payment.StudentId &&
p.Month == payment.Month &&
p.Year == payment.Year);
}
Si ya ha realizado el pago, estoy haciendo lo siguiente en mi capa de servicios:
if (CheckIfAlreadyPaid(payment))
{
modelState.AddModelError("AlreadyPaid",
Resources.Views.Payment.PaymentCreateResources.AlreadyPaid);
}
funciona, pero no confío en hacer referencia al archivo de recursos dentro de la capa Servicios.
¿Existe una forma estándar o mejor de localizar los mensajes de error que no están vinculados a las propiedades del modelo (Anotación de datos), errores que provienen de las reglas de la lógica de negocios? ¿Debo seguir agregando estos errores a ModelStateDictionary?