I'm creating an application in MVC
with DDD
and in my registration screens, I'd like the string
fields like NomeCompleto
, Endereço
, Cidade
, etc to be saved in the inputs
in uppercase .
I do not know where to handle this because I have the classes of my domínio
, I have the classes of my ViewModel
and I have the inputs
of my View
and tried to treat a field using text-uppercase
when my Controller
passes to ViewModel
, the data is lowercase.
<input asp-for="PessoaFisicaViewModel.NomeCompleto" class="form-control text-uppercase" />
Summarizing:
How do I handle this issue on the server and client side? I suppose I would have to handle this in my classes of Domínio
, ViewModel
and inputs
of my View
correct?
public void Register(PessoaViewModel pessoaViewModel)
{
var registerCommand = _mapper.Map<RegisterNewPessoaCommand>(pessoaViewModel);
Bus.SendCommand(registerCommand);
}
public void Handle(RegisterNewPessoaCommand message)
{
if (!message.IsValid())
{
NotifyValidationErrors(message);
return;
}
//Gerar inteiro aleatoriamente (Jalber)
Random random = new Random();
int id = random.Next(100, 3000);
var pessoa = new Pessoa(id, message.PessoaNatureza);
//Verificar o tipo de Pessoa (Física/Jurídica) antes de inserir no banco
if (message.PessoaNatureza == ValueObjects.PessoaNatureza.Fisica)
{
var pessoaFisicaMessage = new RegisterNewPessoaFisicaCommand(message.PessoaFisica);
if (!pessoaFisicaMessage.IsValid())
{
NotifyValidationErrors(pessoaFisicaMessage);
return;
}
var pessoaFisica = new PessoaFisica(
pessoa.Id,
pessoaFisicaMessage.NomeCompleto,
pessoaFisicaMessage.Apelido,
pessoaFisicaMessage.DataNascimento,
pessoaFisicaMessage.Sexo,
pessoaFisicaMessage.EstadoCivil
);
_pessoaFisicaRepository.Add(pessoaFisica);
}
else
{
var pessoaJuridicaMessage = new RegisterNewPessoaJuridicaCommand(message.PessoaJuridica);
if (!pessoaJuridicaMessage.IsValid())
{
NotifyValidationErrors(pessoaJuridicaMessage);
return;
}
var pessoaJuridica = new PessoaJuridica(
pessoa.Id,
pessoaJuridicaMessage.RazaoSocial,
pessoaJuridicaMessage.NomeFantasia,
pessoaJuridicaMessage.DataAbertura
);
_pessoaJuridicaRepository.Add(pessoaJuridica);
}
_pessoaRepository.Add(pessoa);
if (Commit()) //Se salvo, gravar o evento
{
//Passar uma pessoa (Física/Jurídica) para que a classe de evento carregue os campos necessários para o log
var pessoaEvent = new Pessoa(pessoa.Id, pessoa.PessoaNatureza, message.PessoaFisica, message.PessoaJuridica);
Bus.RaiseEvent(new PessoaRegisteredEvent(pessoa));
}
}
public class PessoaFisica : Entity
{
public string NomeCompleto { get; private set; }
public string Apelido { get; private set; }
public DateTime? DataNascimento { get; private set; }
public virtual Pessoa Pessoa { get; private set; }
public virtual Sexo Sexo { get; private set; }
public virtual EstadoCivil EstadoCivil { get; private set; }
public PessoaFisica() { }
public PessoaFisica(PessoaFisica pessoaFisica)
{
NomeCompleto = pessoaFisica.NomeCompleto;
Apelido = pessoaFisica.Apelido;
DataNascimento = pessoaFisica.DataNascimento;
Sexo = pessoaFisica.Sexo;
EstadoCivil = pessoaFisica.EstadoCivil;
}
public PessoaFisica(string nomeCompleto, string apelido, DateTime? dataNascimento, Sexo sexo, EstadoCivil estadoCivil)
{
NomeCompleto = (!string.IsNullOrEmpty(nomeCompleto) ? nomeCompleto.ToUpper() : nomeCompleto);
Apelido = (!string.IsNullOrEmpty(apelido) ? apelido.ToUpper() : apelido);
DataNascimento = dataNascimento;
Sexo = sexo;
EstadoCivil = estadoCivil;
}
public PessoaFisica(int id, string nomeCompleto, string apelido, DateTime? dataNascimento, Sexo sexo, EstadoCivil estadoCivil)
{
Id = id;
NomeCompleto = (!string.IsNullOrEmpty(nomeCompleto) ? nomeCompleto.ToUpper() : nomeCompleto);
Apelido = (!string.IsNullOrEmpty(apelido) ? apelido.ToUpper() : apelido);
DataNascimento = dataNascimento;
Sexo = sexo;
EstadoCivil = estadoCivil;
}
public PessoaFisica(int id, Pessoa pessoa, string nomeCompleto, string apelido, DateTime? dataNascimento, Sexo sexo, EstadoCivil estadoCivil)
{
Id = id;
Pessoa = pessoa;
NomeCompleto = (!string.IsNullOrEmpty(nomeCompleto) ? nomeCompleto.ToUpper() : nomeCompleto);
Apelido = (!string.IsNullOrEmpty(apelido)? apelido.ToUpper() : apelido);
DataNascimento = dataNascimento;
Sexo = sexo;
EstadoCivil = estadoCivil;
}
public PessoaFisica(Pessoa pessoa, string nomeCompleto, string apelido, DateTime? dataNascimento, Sexo sexo, EstadoCivil estadoCivil)
{
Pessoa = pessoa;
NomeCompleto = (!string.IsNullOrEmpty(nomeCompleto) ? nomeCompleto.ToUpper() : nomeCompleto);
Apelido = (!string.IsNullOrEmpty(apelido) ? apelido.ToUpper() : apelido);
DataNascimento = dataNascimento;
Sexo = sexo;
EstadoCivil = estadoCivil;
}
}