public IHttpActionResult PutAgentes([FromUri] int id, [FromBody] Agentes agentes) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != agentes.ID) { return(BadRequest()); } db.Entry(agentes).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!AgentesExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Esquadra")] Agentes agente, HttpPostedFileBase fileUploadFotografia) { // falta tratar das imagens, como feito no CREATE int fotoID = agente.ID; string nomeFotografia = "Agente_" + fotoID + ".jpg"; string caminhoParaFotografia = Path.Combine(Server.MapPath("~/imagens/"), nomeFotografia); // indica onde a imagem será guardada agente.Fotografia = nomeFotografia; if (ModelState.IsValid) { // atualiza os dados do Agente, na estrutura de dados em memória db.Entry(agente).State = EntityState.Modified; // Commit db.SaveChanges(); // guardar a imagem no disco rígido if (fileUploadFotografia != null) { fileUploadFotografia.SaveAs(caminhoParaFotografia); } // redireciona o utilizador para a página de início return(RedirectToAction("Index")); } return(View(agente)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Fotografia,Esquadra")] Agentes agente, HttpPostedFileBase carregaFotografia) { string filename = ""; string imagePath = ""; string oldName = ""; //Verificar se existe uma fotografia if (carregaFotografia != null)//Existe um ficheiro { filename = "agente_" + agente.ID + DateTime.Now.ToString("_yyyyMMdd_hhmmss") + ".jpg"; imagePath = Path.Combine(Server.MapPath("~/imagens/"), filename); oldName = agente.Fotografia; agente.Fotografia = filename; } if (ModelState.IsValid) { try { db.Entry(agente).State = EntityState.Modified; db.SaveChanges(); if (carregaFotografia != null)//Existe um ficheiro { System.IO.File.Delete(Path.Combine(Server.MapPath("~/imagens/"), oldName)); carregaFotografia.SaveAs(imagePath); } return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", "erro"); } } return(View(agente)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Esquadra,Fotografia")] Agentes agentes) { if (ModelState.IsValid) { db.Entry(agentes).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(agentes)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Esquadra,Fotografia")] Agentes agentes) { if (ModelState.IsValid) { // atualiza os dados do Agente, na estrutura de dados em memória db.Entry(agentes).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(agentes)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Esquadra,Fotografia")] Agentes agentes) { if (ModelState.IsValid) { //neste caso ja existe um agente apenas quero Editar os seus dados db.Entry(agentes).State = EntityState.Modified; //efetua commit db.SaveChanges(); return(RedirectToAction("Index")); } return(View(agentes)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Fotografia,Esquadra")] Agentes agente) { // falta tratar das imagens, como feito no CREATE if (ModelState.IsValid) { // atualiza os dados do Agente, na estrutura de dados em memória db.Entry(agente).State = EntityState.Modified; // Commit db.SaveChanges(); return(RedirectToAction("Index")); } return(View(agente)); }
public ActionResult Edit(MultaFormModel model) { if (ModelState.IsValid) { var multas = db.Multas.Find(model.ID); // TODO: Preencher campos da multa... // Ver como se faz no controller dos Agentes, método Edit. db.Entry(multas).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } PreencherDropDownsComDadosBd(model); return(View(model)); }
public ActionResult Edit([Bind(Include = "ID,Nome,Esquadra,Fotografia")] Agentes agente, HttpPostedFileBase uploadFotografiaEdit) { string nomeImagem = "Agente_" + agente.ID + ".jpg"; string path = ""; if (uploadFotografiaEdit != null) { if (uploadFotografiaEdit.FileName.EndsWith("jpg") || uploadFotografiaEdit.FileName.EndsWith("png")) { path = Path.Combine(Server.MapPath("~/imagens/"), nomeImagem); } else { ModelState.AddModelError("", "Ficheiro não é uma imagem"); } //guardar o nome do ficheiro agente.Fotografia = nomeImagem; } if (ModelState.IsValid) { // neste caso já existe um Agente // apenas quero EDITAR os seus dados db.Entry(agente).State = EntityState.Modified; //efetuar 'Commit' db.SaveChanges(); if (uploadFotografiaEdit != null) { //escrever o ficheiro com a fotografia no disco rígido na pasta uploadFotografiaEdit.SaveAs(path); } return(RedirectToAction("Index")); } return(View(agente)); }
public ActionResult Edit(EditAgenteViewModel model) { if (!ModelState.IsValid) { return(View(model)); } // Obter o agente a editar, e produzir um erro se não existir. var agente = db.Agentes.Find(model.ID); if (agente == null) { ModelState.AddModelError("", "O agente não existe."); return(View(model)); } /// como se pretende editar os dados de um Agente, /// tem de haver a hipótese de se editar a fotografia dele. /// Por esse motivo, é necessário adicionar aos parâmetros de entrada do método /// uma variável do tipo HttpPostedFileBase para receber o ficheiro da imagem. /// É igualmente necessário adicionar, na View, um objeto do tipo <input type="file" /> /// para possibilitar a escolha da imagem a efetuar upload. /// O nome da variável no método do controller e na view tem de ser o mesmo. /// /// De igual forma, é necessário alterar a forma como se configura o objeto do tipo <form />, /// responsável por enviar os dados do browser para o servidor, /// adicionando-lhe o parâmetro 'enctype = "multipart/form-data" ' /// quando se faz uma simples substituição de uma fotografia por outra, /// mantendo o nome original, nem sempre os browsers atualizam, no ecrã, /// a nova imagem, pela forma como fazem a gestão da 'cache'. /// Por isso, é frequente alterar-se o nome da nova imagem, adicionando-lhe um termo /// associado à data+hora da alteração. // vars. auxiliares string novoNome = ""; string nomeAntigo = ""; if (ModelState.IsValid) { try { /// se foi fornecida uma nova imagem, /// preparam-se os dados para efetuar a alteração if (model.Fotografia != null) { /// antes de se fazer alguma coisa, preserva-se o nome antigo da imagem, /// para depois a remover do disco rígido do servidor nomeAntigo = agente.Fotografia; /// para o novo nome do ficheiro, vamos adicionar o termo gerado pelo timestamp /// devidamente formatado, mais /// A extensão do ficheiro é obtida automaticamente em vez de ser escrita de forma explícita novoNome = "Agente_" + agente.ID + DateTime.Now.ToString("_yyyyMMdd_hhmmss") + Path.GetExtension(model.Fotografia.FileName).ToLower();; /// atualizar os dados do Agente com o novo nome agente.Fotografia = novoNome; /// guardar a nova imagem no disco rígido model.Fotografia.SaveAs(Path.Combine(Server.MapPath("~/imagens/"), novoNome)); } // Passar os dados do modelo para o agente agente.Esquadra = model.Esquadra; // guardar os dados do Agente db.Entry(agente).State = EntityState.Modified; // Commit db.SaveChanges(); /// caso tenha sido fornecida uma nova imagem há necessidade de remover /// a antiga if (model.Fotografia != null) { System.IO.File.Delete(Path.Combine(Server.MapPath("~/imagens/"), nomeAntigo)); } // enviar os dados para a página inicial return(RedirectToAction("Index")); } catch (Exception) { // caso haja um erro deve ser enviada uma mensagem para o utilizador ModelState.AddModelError("", string.Format("Ocorreu um erro com a edição dos dados do agente {0}", agente.Nome)); } } // Preencher novamente os campos que se possam ter perdido... model.FotografiaAtual = agente.Fotografia; return(View(model)); }