У меня есть модель, которая реализует IValidatlableObject, и поэтому пользовательская проверка ошибок с помощью метода Validate.
Когда я создаю объект, все в порядке, но когда я пытаюсь редактировать этот объект, я не хочу выполнять эту пользовательскую проверку.
Как узнать, по какому действию я вызываю метод Validate, чтобы не выполнять проверку?
ОБНОВЛЕНИЕ:
Это ми модель:
public class Ingredient : IValidatableObject
{
public int Id { get; set; }
[Required(ErrorMessage = "Required!!")]
public string Name { get; set; }
public virtual List<Product> Products { get; set; }
public Ingredient()
{
Products = new List<Product>();
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
using (var uow = new UnitOfWork())
{
var ingredient = uow.IngredientRepository.Get(i => i.Name ==Name).FirstOrDefault();
if (ingredient != null)
yield return new ValidationResult("Duplicate!!!.", new[] { "Name" });
}
}
}
}
Итак, когда я создаю Ингредиент, я хочу проверить ВСЕ (Атрибуты + IValidatable)
но когда я редактирую Ingrendient, я хочу проверять только атрибуты (я имею в виду пропустить IValidatable)
Любой метод, который нужно знать, внутри метода IValidatable, откуда я вызываю Validate?
Спасибо !!!