0
I am creating an application in MVC
with DDD
and on my registration screens, I would like the fields string
as NomeCompleto
, Endereço
, Cidade
, etc, were saved on displayed in inputs
in high box.
I don’t know where to treat it because I have the classes of my domínio
, I have the classes of my ViewModel
and have the inputs
of my View
and tried to treat a field using text-uppercase
, but when mine Controller
passes to the ViewModel
, data is in lower case.
<input asp-for="PessoaFisicaViewModel.NomeCompleto" class="form-control text-uppercase" />
In short:
How do I address this issue on the server and client side? I suppose I would have to address 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;
}
}
this class
CSS
only changes the look, but what you really need is to write in capital letters, as the context behind is larger and we do not know how you record in the database becomes complicated, you could put an example of updating your database, that’s when I would make the recording loud.– novic
The process is done with several classes. I used a model of Eduardo Pires... As an example, I have a Person class in my Domain and another Registernewpessoacommand class that looks like a viewmodel, only I use it to receive data from Viewmodel and load my domain classes only to write to the repository... I’ll try to post a brief summary of the code...
– Master JR
I thought I’d treat it in the small classes of my domain...
– Master JR