public ActionResult Create(PessoaFisicaViewModel pessoaFisica) { if (ModelState.IsValid) { var pessoaDomain = Mapper.Map <PessoaFisicaViewModel, PessoaFisica>(pessoaFisica); _pessoaFisicaApp.Add(pessoaDomain); return(RedirectToAction("Index")); } return(View(pessoaFisica)); }
// POST: api/PessoaFisica public void Post(PessoaFisicaViewModel pessoaFisicaVM) { var date = DateTime.ParseExact(pessoaFisicaVM.DtNascimento, "dd/MM/yyyy", CultureInfo.InvariantCulture); var pessoaFisica = new PessoaFisica { Nome = pessoaFisicaVM.Nome, Cpf = new Cpf(pessoaFisicaVM.Cpf), DtNascimento = date }; _pessoaFisicaApp.Add(pessoaFisica); }
//Action para a cadastro de um novo cliente public ActionResult Create(ClienteViewModel clienteViewModel) { try { //Se é cadastro de pessoa física if (clienteViewModel.TipoPessoa == TipoPessoa.Física) { //Remove os campos de pessoa jurídica da validação do model ModelState.Remove("CNPJ"); ModelState.Remove("NomeFantasia"); ModelState.Remove("RazaoSocial"); } //Se é cadastro de pessoa jurídica else { //Remove os campos de pessoa física da validação do model ModelState.Remove("CPF"); ModelState.Remove("DataNasc"); ModelState.Remove("Nome"); ModelState.Remove("Sobrenome"); } //Se o model é válido if (ModelState.IsValid) { //Preenche o modelo de acordo com o tipo de pessoa if (clienteViewModel.TipoPessoa == TipoPessoa.Física) { //Utilizando AutoMapper para atribuição dos dados da viewmodel para o model var config = new MapperConfiguration(cfg => { cfg.CreateMap <ClienteViewModel, PessoaFisica>() .ForMember(p => p.CPF, map => map.UseValue(Regex.Replace(clienteViewModel.CPF, "[^0-9]", ""))); }); //Regex para persistir somente números var pessoaFisica = config.CreateMapper().Map <ClienteViewModel, PessoaFisica>(clienteViewModel); //Preenche as viewbags dos dropdownlists LoadViewBags(pessoaFisica.Cidade); //Adiciona ao contexto de banco de dados os dados de pessoa física _pessoaFisicaApp.Add(pessoaFisica); } else { var config = new MapperConfiguration(cfg => { cfg.CreateMap <ClienteViewModel, PessoaJuridica>() .ForMember(p => p.CNPJ, map => map.UseValue(Regex.Replace(clienteViewModel.CNPJ, "[^0-9]", ""))); }); //Regex para persistir somente números var pessoaJuridica = config.CreateMapper().Map <ClienteViewModel, PessoaJuridica>(clienteViewModel); LoadViewBags(pessoaJuridica.Cidade); _pessoaJuridicaApp.Add(pessoaJuridica); } //Retorna para a view index return(RedirectToAction("Index")); } else { //Preenche as viewbags dos dropdownlists LoadViewBags(_cidadeApp.GetCityById(clienteViewModel.CidadeID)); } return(View(clienteViewModel)); } catch (Exception ex) { throw ex; } }