예제 #1
0
        public ActionResult Create(PessoaFisicaViewModel pessoaFisica)
        {
            if (ModelState.IsValid)
            {
                var pessoaDomain = Mapper.Map <PessoaFisicaViewModel, PessoaFisica>(pessoaFisica);
                _pessoaFisicaApp.Add(pessoaDomain);

                return(RedirectToAction("Index"));
            }


            return(View(pessoaFisica));
        }
예제 #2
0
        // 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;
            }
        }