Hi Walaa,
Thanks for you help, unfortuanatly thats exactly what im doing and it doesn't seem to want to work, the entity is still being saved, even when I'm calling SetEntityError
My code looks like this:
Save:
using (CS.SM.DataAccess.DatabaseSpecific.DataAccessAdapter Adapter = new CS.SM.DataAccess.DatabaseSpecific.DataAccessAdapter())
{
user.Validator = new UserValidator();
Adapter.SaveEntity(user, refetchAfterSave);
}
Validator:
/// <summary>
/// Used to validate the user entity classes.
/// </summary>
public class UserValidator : ValidatorBase
{
#region Static Error Messages ...
/// <summary>
/// Error message for invalid password length.
/// </summary>
public const string ErrorMsgPasswordLength = "The password must be at least 6 characters.";
/// <summary>
/// Username change error message.
/// </summary>
public const string ErrorMsgEditUsername = "Once a user is created and saved thier username cannot be changed.";
/// <summary>
/// Username already in user error message.
/// </summary>
public const string ErrorMsgUsernameAlreadyInUser = "The choosen user name is already in use.";
#endregion
#region Validation Before Save ...
/// <summary>
/// Validate the entity before saving it to the database.
/// </summary>
/// <param name="involvedEntity"></param>
public override void ValidateEntityBeforeSave(IEntityCore involvedEntity)
{
UserEntity UpdatedUser = (UserEntity)involvedEntity;
//UpdatedUser.Errors.Add("test");
UpdatedUser.SetEntityError("Error!");
UpdatedUser.SetEntityFieldError("Firstname", "test", true);
base.ValidateEntityBeforeSave(involvedEntity);
}
#endregion
}
Nunit Test:
[Test]
public void TestCreateNewUserTestCase03()
{
UserEntity NewUser = new UserEntity();
NewUser.UserName = "NUnitTest";
NewUser.UserTypeId = (int)UserType.Customer;
NewUser.Title = "Mr.";
NewUser.Password = "Password";
NewUser.PasswordSalt = 12345;
NewUser.FirstName = "FirstName";
NewUser.LastName = "LastName";
UserManager.SaveUser(NewUser, true);
// Should fail validation, and not be saved. resulting in a zero id.
Assert.IsTrue(NewUser.Id == 0);
}
Any ideas what I'm doing wrong?