ChatMVC/Chat.Domain/ValueObjects/Email.cs
2025-01-25 10:41:37 -03:00

45 lines
970 B
C#

using BaseDomain;
using System.Net.Mail;
namespace ChatMvc.Domain
{
public class Email : AValueObject
{
public Email(string email)
{
this.Value = email;
}
public string Value { get; private set; }
public static implicit operator string(Email e) => e.Value;
public static explicit operator Email(string email) => new Email(email);
public override bool GetValidationExpression()
{
return IsEMailValid(this.Value);
}
protected override IEnumerable<object> GetEqualityComponents()
{
yield return this.Value;
}
private bool IsEMailValid(string email)
{
var valid = true;
try
{
var emailAddress = new MailAddress(email);
}
catch
{
valid = false;
}
return valid;
}
}
}