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));
            }
        }
Пример #2
0
        public ActionResult Edit(PessoaFisicaViewModel pessoaFisica)
        {
            if (ModelState.IsValid)
            {
                var pessoaDomain = Mapper.Map <PessoaFisicaViewModel, PessoaFisica>(pessoaFisica);
                _pessoaFisicaApp.Update(pessoaDomain);

                return(RedirectToAction("Index"));
            }

            return(View(pessoaFisica));
        }
Пример #3
0
        // PUT: api/PessoaFisica/5
        public void Put(PessoaFisicaViewModel pessoaFisicaVM)
        {
            var date = DateTime.ParseExact(pessoaFisicaVM.DtNascimento,
                                           "dd/MM/yyyy",
                                           CultureInfo.InvariantCulture);

            var pessoaFisica = _pessoaFisicaApp.GetById(Convert.ToInt32(pessoaFisicaVM.Id));

            pessoaFisica.Nome         = pessoaFisicaVM.Nome;
            pessoaFisica.Cpf          = new Cpf(pessoaFisicaVM.Cpf);
            pessoaFisica.DtNascimento = date;
            _pessoaFisicaApp.Update(pessoaFisica);
        }
        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;
            }
        }