public ActionResult Edit(ClienteViewModel model)
        {
            var pessoa = Mapper.Map <PessoaViewModel, Pessoa>(model.Pessoa);

            pessoa.CEP = pessoa.CEP.Replace("-", "");
            if (ModelState.IsValid)
            {
                try
                {
                    if (pessoa.TipoPessoa == "Física")
                    {
                        pessoa.PessoaJuridica = null;
                        var pessoaF = Mapper.Map <PessoaFisicaViewModel, PessoaFisica>(model.Pessoa.PessoaFisica);
                        _pessoaFisicaService.Update(pessoaF);
                    }
                    if (pessoa.TipoPessoa == "Jurídica")
                    {
                        pessoa.PessoaFisica = null;
                        var pessoaJ = Mapper.Map <PessoaJuridicaViewModel, PessoaJuridica>(model.Pessoa.PessoaJuridica);
                        _pessoaJuridicaService.Update(pessoaJ);
                    }
                    _pessoaService.Update(pessoa);
                    return(RedirectToAction("Index").Mensagem("Cliente alterado com sucesso!", "Editar Cliente"));
                }
                catch (Exception e)
                {
                    return(View(model).Mensagem(e.Message, "ERRO:"));
                }
            }
            else
            {
                return(View(model));
            }
        }
Beispiel #2
0
        // PUT: api/PessoaJuridica/5
        public void Put(PessoaJuridicaViewModel pessoaJuridicaVM)
        {
            var pessoaJuridica = _pessoaJuridicaApp.GetById(Convert.ToInt32(pessoaJuridicaVM.Id));

            pessoaJuridica.NomeFantasia = pessoaJuridicaVM.NomeFantasia;
            pessoaJuridica.Cnpj         = new Cnpj(pessoaJuridicaVM.Cnpj);
            pessoaJuridica.RazaoSocial  = pessoaJuridicaVM.RazaoSocial;
            _pessoaJuridicaApp.Update(pessoaJuridica);
        }
        public ActionResult Edit(PessoaJuridicaViewModel pessoaJuridica)
        {
            if (ModelState.IsValid)
            {
                var pessoaJuridicaDomain = Mapper.Map <PessoaJuridicaViewModel, PessoaJuridica>(pessoaJuridica);
                _pessoaJuridicaApp.Update(pessoaJuridicaDomain);

                return(RedirectToAction("Index"));
            }

            return(View(pessoaJuridica));
        }
        public ActionResult Edit(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);

                        //Efetua o update
                        _pessoaFisicaApp.Update(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);

                        //Efetua o update
                        _pessoaJuridicaApp.Update(pessoaJuridica);
                    }

                    //Retorna para a view index
                    return(RedirectToAction("Index"));
                }

                return(View(clienteViewModel));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }