CustomUserValidation как правильно переопределить что пользователь с таким логином существует?
Я создал CustomValidation что бы при регистрации выводить свой текст ошибки. И было все нормально, пока я не начал менять роли. При смени роли пользователя вызывается CustomValidation и выдает ошибку, так как checkEmail == 1, потому что пользователь уже зарегистрирован. Как мне решить проблему?
public class CustomValidator : IUserValidator<User>
{
private ApplicationContext db;
public CustomValidator(ApplicationContext context)
{
db = context;
}
public Task<IdentityResult> ValidateAsync(UserManager<User> manager, User user)
{
List<IdentityError> errors = new List<IdentityError>();
var checkEmail = db.Userinfos.Where(x => x.Email.ToLower() == user.Email.ToLower()).Count();
if (checkEmail == 1)
{
errors.Add(new IdentityError
{
Description = "Этот email уже существует"
});
}
var checkPhoneNumber = db.Userinfos.Where(x => x.PhoneNumber == user.PhoneNumber).Count();
if (checkPhoneNumber > 1 || checkPhoneNumber > 1)
{
errors.Add(new IdentityError
{
Description = "Этот номер уже существует"
});
}
return Task.FromResult(errors.Count == 0 ?
IdentityResult.Success : IdentityResult.Failed(errors.ToArray()));
}
}