У меня есть модель, реализующая IValidatlableObject, и поэтому пользовательская проверка ошибок с помощью метода Validate.
Когда я создаю объект, все в порядке, но когда я пытаюсь отредактировать этот объект, я не хочу выполнять эту пользовательскую проверку.
Как я могу узнать, из какого действия я вызываю метод Validate, чтобы не выполнять проверку?
ОБНОВЛЕНО: Это модель mi:
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), но когда я редактирую ингредиент, я хочу проверить только атрибуты (поэтому я имею в виду пропустить IValidatable). Любой метод, который нужно знать, внутри метода IValidatable, откуда я вызов Подтвердить?
Спасибо!!!