RegisterNewPessoaCommand Class
public class RegisterNewPessoaCommand {
public RegisterNewPessoaCommand(PessoaNatureza pessoaNatureza,
PessoaFisica pessoaFisica,
PessoaJuridica pessoaJuridica,
PessoaGenerico pessoaGenerico, List<PessoaContato> pessoasContatos) {
PessoaNatureza = pessoaNatureza;
PessoaFisica = pessoaFisica;
PessoaJuridica = pessoaJuridica;
PessoaGenerico = pessoaGenerico;
PessoasContatos = pessoasContatos;
}
}
PersonViewModel class
public class PessoaViewModel {
public List <PessoaDocumentoViewModel> PessoasDocumentosViewModel {
get;
set;
}
}
PersonContact class
public class PessoaContato : Entity
{
public int ContatoTipoId { get; private set; }
public int PessoaId { get; private set; }
public string Contato { get; private set; }
public string Detalhes { get; private set; }
public bool ContatoPrincipal { get; private set; }
public virtual Pessoa Pessoa { get; private set; }
public virtual ContatoTipo ContatoTipo{ get; private set; }
protected PessoaContato() { }
public PessoaContato(int contatoTipoId, int pessoaId, string contato, string detalhes, bool contatoPrincipal)
{
ContatoTipoId = contatoTipoId;
PessoaId = pessoaId;
Contato = contato;
Detalhes = detalhes;
ContatoPrincipal = contatoPrincipal;
}
}
Class PersonContactViewModel
public class PessoaContatoViewModel
{
[Key]
public int Id { get; set; }
public int PessoaId { get; set; }
[DisplayName("Tipo de Contato")]
[Required(ErrorMessage = "Escolha um Tipo de Contato")]
public int ContatoTipoId { get; set; }
[DisplayName("Tipo de Contato")]
public string ContatoTipoDescricao { get; set; }
[DisplayName("Tipos de Contato")]
public IEnumerable<SelectListItem> ContatosTipos { get; set; }
[DisplayName("Contato")]
[Required(ErrorMessage = "O campo Contato é obrigatório")]
[MaxLength(100, ErrorMessage = "O campo {0} deve ter no máximo {1} caracteres")]
public string Contato { get; set; }
[DisplayName("Detalhes")]
[MaxLength(150, ErrorMessage = "O campo {0} deve ter no máximo {1} caracteres")]
public string Detalhes { get; set; }
[DisplayName("Contato Principal")]
public bool ContatoPrincipal { get; set; }
}
I have classes PessoaViewModel
and RegisterNewPessoaCommand
where I need to map the property PessoasDocumentosViewModel
to List<PessoaContato> pessoasContatos
, one is PessoaViewModel
list and the other is PessoaContato
list and both have the same fields.
Other properties are mapped and working. I need to do a Loop and load the fields from one List to another as per the image. Does anyone know how to help me?
CreateMap<PessoaViewModel, RegisterNewPessoaCommand>()
.ConstructUsing(p => new RegisterNewPessoaCommand(
p.PessoaNatureza,
(p.PessoaFisicaViewModel != null ? new Domain.Models.PessoaFisica(
p.PessoaFisicaViewModel.NomeCompleto,
p.PessoaFisicaViewModel.Apelido,
p.PessoaFisicaViewModel.DataNascimento,
p.PessoaFisicaViewModel.Sexo,
p.PessoaFisicaViewModel.EstadoCivil,
p.PessoaFisicaViewModel.PessoaFisicaOrigem) : null
),
(p.PessoaJuridicaViewModel != null ? new Domain.Models.PessoaJuridica(
p.PessoaJuridicaViewModel.RazaoSocial,
p.PessoaJuridicaViewModel.NomeFantasia,
p.PessoaJuridicaViewModel.DataAbertura,
p.PessoaJuridicaViewModel.RegimeTributario,
p.PessoaJuridicaViewModel.PessoaJuridicaOrigem) : null
),
(p.PessoaGenericoViewModel != null ? new Domain.Models.PessoaGenerico(
p.PessoaGenericoViewModel.PessoaTipo,
p.PessoaGenericoViewModel.CodigoInterno,
p.PessoaGenericoViewModel.PessoaFilialId) : null
),
new List<PessoaContato>() <========recebe as list de p.PessoasContatosViewModel
));