/// <summary> /// Cria uma nova instância do contrato /// </summary> /// <param name="name">Dados do nome completo</param> /// <param name="charListAllowed">Lista de caracteres permitidos para o nome</param> public NomeCompletoContract(INomeCompleto name, string charListAllowed) { // Regular expression for all characteres name (global) // ^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$ Contract .Requires() .IsNotNullOrEmpty(name.PrimeiroNome, "Primeiro Nome", "O primeiro nome deve ser informado") .HasMinLen(name.PrimeiroNome ?? string.Empty, 2, "Nome", "O nome deve conter no mínimo 2 caracteres") .HasMaxLen(name.PrimeiroNome ?? string.Empty, 50, "Nome", "O nome deve conter no máximo 50 caracteres") .Matchs(name.PrimeiroNome, $"^[a-zA-Z{charListAllowed} ,.'-]+$", "Nome", "o nome contém caracteres inválidos") .IsNotNullOrEmpty(name.Sobrenome, "Sobrenome", "O sobrenome deve ser informado") .HasMinLen(name.Sobrenome ?? string.Empty, 2, "Sobrenome", "O sobrenome deve conter no mínimo 2 caracteres") .HasMaxLen(name.Sobrenome ?? string.Empty, 100, "Sobrenome", "O sobrenome deve conter no máximo 100 caracteres") .Matchs(name.PrimeiroNome, $"^[a-zA-Z{charListAllowed} ,.'-]+$", "Sobrenome", "O sobrenome contém caracteres inválidos") ; }
/// <summary> /// Cria uma nova instância do contrato /// </summary> /// <param name="name">Dados do nome completo</param> public NomeCompletoContract(INomeCompleto name) : this(name, string.Empty) { }