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()));
        }
    }

Ответы (0 шт):