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)); }
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)); } }
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)); }
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)); } }