Drei verschiedene Events stehen während der Validierung zur Verfügung.

  • OnBeforeValidation Wird vor der Validierung ausgeführt. An dieser Stelle kann man beispielsweise noch Felder ändern, bevor diese validiert werden. Das Event wird nur aufgerufen, wenn der Datensatz von einer Maske verändert wird.
  • OnOrmValidateModel Dieses Event wird ausgeführt, wenn bei der Validierung ein Ausnahme auftritt.
  • OnAfterOrmValidation Wird nach der Ausführung der Validatoren ausgeführt. Weitere Validierungsfehler fügt über ValidationResults auf dem Datensatz hinzu.
public override void OnBeforeValidation(OrmBABase orm)
{
    OrmMyDataTable myDataTable = (OrmMyDataTable)orm;
    myDataTable.TextField = "Inhalt: " + myDataTable.TextField;
}
public override void OnOrmValidateModel(OrmBABase orm, ref Exception e)
{
    OrmMyDataTable myDataTable = (OrmMyDataTable)orm;
    myDataTable.LastValidatenException = e.Message;
}
public override void OnAfterOrmValidation(OrmBABase orm, ref bool baseValidationResult)
{
    OrmMyDataTable myDataTable = (OrmMyDataTable)orm;
    if (myDataTable.BooleanField && (myDataTable.TextField == null || !myDataTable.TextField.StartsWith("Inhalt")))
    {
        myDataTable.ValidationResults.Add(new ValidationContext(myDataTable) { MemberName = nameof(OrmMyDataTable.TextField) }, "[INSERT TRANSLATION GUID]");
        baseValidationResult = false;
    }

    if (baseValidationResult)
        myDataTable.BooleanField = false;
}