Beispiel #1
0
        // POST: api/PessoaJuridica
        public void Post(PessoaJuridicaViewModel pessoaJuridicaVM)
        {
            var pessoaJuridica = new PessoaJuridica
            {
                NomeFantasia = pessoaJuridicaVM.NomeFantasia,
                Cnpj         = new Cnpj(pessoaJuridicaVM.Cnpj),
                RazaoSocial  = pessoaJuridicaVM.RazaoSocial
            };

            _pessoaJuridicaApp.Add(pessoaJuridica);
        }
        public ActionResult Create(PessoaJuridicaViewModel pessoaJuridica)
        {
            if (ModelState.IsValid)
            {
                var clienteDomain = Mapper.Map <PessoaJuridicaViewModel, PessoaJuridica>(pessoaJuridica);
                _pessoaJuridicaApp.Add(clienteDomain);

                return(RedirectToAction("Index"));
            }

            return(View(pessoaJuridica));
        }
        //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;
            }
        }