using System.Text.RegularExpressions; using TheCyclopsContracts.Exceptions; using TheCyclopsContracts.Extensions; using TheCyclopsContracts.Infrastructure; namespace TheCyclopsContracts.DataModels; public class ClientDataModel(string id, string fio, string email) : IValidation { public string Id { get; private set; } = id; public string FIO { get; private set; } = fio; public string Email { get; private set; } = email; public void Validate() { if (Id.IsEmpty()) throw new ValidationException("Field Id is empty"); if (!Id.IsGuid()) throw new ValidationException("The value in the field Id is not a unique identifier"); if (FIO.IsEmpty()) throw new ValidationException("Field FIO is empty"); if (Email.IsEmpty()) throw new ValidationException("Field Email is empty"); if (!Regex.IsMatch(Email, @"^\S+@\S+\.\S+$")) throw new ValidationException("Field Email is not an email address"); } }