public record ValidationResult(bool IsValid, string? ErrorMessage = null);
public static class EmailValidator
{
public static ValidationResult Validate(string? email)
{
if (string.IsNullOrWhiteSpace(email))
return new ValidationResult(false, "Email не может быть пустым");
var parts = email.Split('@');
if (parts.Length != 2)
return new ValidationResult(false, "Email должен содержать ровно один символ '@'");
var (local, domain) = (parts[0], parts[1]);
if (string.IsNullOrEmpty(local))
return new ValidationResult(false, "Локальная часть email не может быть пустой");
if (string.IsNullOrEmpty(domain) || !domain.Contains('.') ||
domain.StartsWith('.') || domain.EndsWith('.'))
return new ValidationResult(false, "Некорректный домен: должен содержать точку и не начинаться/заканчиваться ею");
return new ValidationResult(true);
}
}
public record ValidationResult(bool IsValid, string? ErrorMessage = null);
public static class EmailValidator
{
public static ValidationResult Validate(string? email)
{
if (string.IsNullOrWhiteSpace(email))
return new ValidationResult(false, "Email не может быть пустым");
var parts = email.Split('@');
if (parts.Length != 2)
return new ValidationResult(false, "Email должен содержать ровно один символ '@'");
var (local, domain) = (parts[0], parts[1]);
if (string.IsNullOrEmpty(local))
return new ValidationResult(false, "Локальная часть email не может быть пустой");
if (string.IsNullOrEmpty(domain) || !domain.Contains('.') ||
domain.StartsWith('.') || domain.EndsWith('.'))
return new ValidationResult(false, "Некорректный домен: должен содержать точку и не начинаться/заканчиваться ею");
return new ValidationResult(true);
}
}