Exemple #1
0
        public ActionResult Editar(int id)
        {
            #region preparação

            //Carrega a entidade do banco de dados
            var objEntidade = _svcPessoa.GetById(id);
            if (objEntidade == null)
            {
                return(new HttpNotFoundResult("Pessoa não encontrada"));
            }
            PessoaViewmodel model = Mapper.Map <Pessoa, PessoaViewmodel>(objEntidade);
            #endregion

            return(View(model));
        }
Exemple #2
0
        public ActionResult Criar(PessoaViewmodel model)
        {
            try
            {
                //valida se não há erros no modelstate (caso o jquery validation falhe)
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                //Cria a entidade de banco de dados através do viewmodel usando o AutoMapper
                Pessoa objEntidade = Mapper.Map <PessoaViewmodel, Pessoa>(model);



                //carrega os dados da foto
                //somente se o usuário fez upload da foto, pois caso não tenha feito, não modificará a imagem
                //atualmente gravada no banco de dados
                if (model.ArqImagem != null && model.ArqImagem.ContentLength > 0)
                {
                    //carrega o mime type do arquivo. Será necessário para entregar o arquivo via FileResult
                    objEntidade.FotoMime = model.ArqImagem.ContentType;

                    //cria o array vazio com o tamanho exato da imagem que foi feito upload
                    objEntidade.Foto = new byte[model.ArqImagem.ContentLength];

                    //lê os bytes do arquivo que foi feito upload e grava na entidade do banco de dados
                    model.ArqImagem.InputStream.Read(objEntidade.Foto, 0, objEntidade.Foto.Length);
                }


                //Chama o serviço para adicionar a entidade Pessoa recém declarada
                _svcPessoa.Add(objEntidade);

                //Seta a mensagem de retorno (javascript na página de layout)
                ViewBag.Mensagem = "Item criado com sucesso";

                //redireciona para o index
                return(RedirectToAction("Index"));
            }
            catch (Exception ex) //tratado aqui caso de erro o usuário não perde o preenchimento pois ele tem o return view(model)
            {
                ViewBag.Mensagem = $"Erro ao executar o comando. O erro foi: {ex.Message}";
                //TODO: Logar o erro no log4net
                return(View(model));
            }
        }
Exemple #3
0
        public ActionResult Familiares(int id)
        {
            #region preparação
            //Carrega a entidade do banco de dados
            var objEntidade = _svcPessoa.GetById(id);
            if (objEntidade == null)
            {
                return(new HttpNotFoundResult("Pessoa não encontrada"));
            }
            PessoaViewmodel model = Mapper.Map <Pessoa, PessoaViewmodel>(objEntidade);

            var Parentescos             = Helpers.EnumToDropDownListExtensions.GetSelectListFromEnum((new FamiliarViewmodel()).Parentesco);
            Parentescos.Last().Selected = true;
            ViewBag.Parentescos = Parentescos;

            #endregion

            return(View(model));
        }
Exemple #4
0
        public ActionResult Editar(PessoaViewmodel model)
        {
            try
            {
                //valida se não há erros no modelstate (caso o jquery validation falhe)
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }


                //Carrega a entidade do banco de dados
                var objEntidade = _svcPessoa.GetById(model.id_pessoa);
                if (objEntidade == null)
                {
                    return(new HttpNotFoundResult("Pessoa não encontrada"));
                }

                //faz backup dos familiares
                var FamiliaresBak = objEntidade.Familiares.ToList();


                //remapeia as propriedades para atualizar o banco (atualiza as propriedades da entidade do banco de dados com os dados da viewmodel)
                Mapper.Map <PessoaViewmodel, Pessoa>(model, objEntidade);

                objEntidade.Familiares = FamiliaresBak;



                //carrega os dados da foto
                //somente se o usuário fez upload da foto, pois caso não tenha feito, não modificará a imagem
                //atualmente gravada no banco de dados
                if (model.ArqImagem != null && model.ArqImagem.ContentLength > 0)
                {
                    //carrega o mime type do arquivo. Será necessário para entregar o arquivo via FileResult
                    objEntidade.FotoMime = model.ArqImagem.ContentType;

                    //cria o array vazio com o tamanho exato da imagem que foi feito upload
                    objEntidade.Foto = new byte[model.ArqImagem.ContentLength];

                    //lê os bytes do arquivo que foi feito upload e grava na entidade do banco de dados
                    model.ArqImagem.InputStream.Read(objEntidade.Foto, 0, objEntidade.Foto.Length);
                }



                //Atualiza os dados no banco (executa a chamada do application pra atualizar a pessoa
                _svcPessoa.Update(objEntidade);

                //TODO:Logar no audit trail a alteração

                //cria a mensagem de retorno
                ViewBag.Mensagem = $"Membro {objEntidade.Nome} atualizado com sucesso!";


                //retorna para a view (index)
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ViewBag.Mensagem = $"Erro ao executar o comando. O erro foi: {ex.Message}";
                //TODO: Logar o erro no log4net
                return(View(model));
            }
        }