public ActionResult DeleteConfirmed(int id, string[] opcoesEscolhidasDeTags) { Folhetos folhetos = db.Folhetos.Find(id); List <Tags> listaDeObjetosDeTagsEscolhidos = new List <Tags>(); var aa = db.Folhetos.Include(b => b.ListaDeTags).Where(b => b.FolhetosID == folhetos.FolhetosID).SingleOrDefault(); System.Diagnostics.Debug.WriteLine(aa); string subPath = ""; subPath = HttpContext.Server.MapPath("~/imagens/folheto" + id); System.IO.Directory.Delete(subPath, true); try { //db.Folhetos.Remove(aa); db.Folhetos.Remove(folhetos); db.SaveChanges(); return(RedirectToAction("Index")); } catch { // gerar uma mensagem de erro, a ser apresentada ao utilizador ModelState.AddModelError("", string.Format("Não foi possível remover o folheto porque existem tags: '{0}' e categorias: {1} associadas a ele.", folhetos.ListaDeTags, folhetos.ListaDeCategorias)); } // reenviar os dados para a View return(View(folhetos)); }
// GET: Folhetos/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return(HttpNotFound()); } var path = "C:\\Users\\AlexandredosSantosSe\\dev\\MvcFolhetos\\MvcFolhetos\\imagens\\folheto" + id; //var path = "~/imagens/folheto" + id ; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path); int count = dir.GetFiles().Length; //int fCount = Directory.GetFiles(path).Length; // gerar a lista de objetos de Tags que podem ser associados aos folhetos ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); ViewBag.nPaginas = count; ViewBag.id = id; return(View(folhetos)); }
public IHttpActionResult PutFolhetos([FromUri] int id, [FromBody] Folhetos folhetos) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != folhetos.FolhetosID) { return BadRequest(); } db.Entry(folhetos).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!FolhetosExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public ActionResult DeleteConfirmed(int id) { Folhetos folhetos = db.Folhetos.Find(id); db.Folhetos.Remove(folhetos); db.SaveChanges(); return(RedirectToAction("Index")); }
public FolhetoFormModel(Folhetos folhetos) { this.FolhetoID = folhetos.FolhetosID; this.Titulo = folhetos.Titulo; this.Descricao = folhetos.Descricao; this.DataInic = folhetos.DataInic; this.DataFim = folhetos.DataFim; this.NomeEmpresa = folhetos.NomeEmpresa; }
public IHttpActionResult DeleteFolhetos(int id) { Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return NotFound(); } db.Folhetos.Remove(folhetos); db.SaveChanges(); return Ok(folhetos); }
// GET: Folhetos/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return(HttpNotFound()); } return(View(folhetos)); }
// GET: Folhetos/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return(HttpNotFound()); } ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); return(View(folhetos)); }
// GET: Folhetos/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return(HttpNotFound()); } // gerar a lista de objetos de B que podem ser associados a A ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); return(View(folhetos)); }
public IHttpActionResult GetFolhetosByTags(int id) { Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return NotFound(); } var resultado = folhetos.ListaDeTags .Select(tags => new { tags.ID, tags.Info, }) .ToList(); return Ok(resultado); }
public IHttpActionResult PostFolhetos(CreateFolhetoViewModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var folhetos = new Folhetos { FolhetosID = db.GetIdFolheto(), Titulo = model.Titulo, Descricao = model.Descricao, DataInic = model.DataInic, DataFim = model.DataFim, NomeEmpresa = model.NomeEmpresa }; db.Folhetos.Add(folhetos); try { db.SaveChanges(); } catch (DbUpdateException) { // Seria muito provável que o método // db.Agentes.Max(agente => agente.ID) + 1 // fizesse com que este if resultasse no Conflict (HTTP 409). // Função criado pelo template if (FolhetosExists(folhetos.FolhetosID)) { return Conflict(); } else { throw; } } return CreatedAtRoute("DefaultApi", new { id = folhetos.FolhetosID }, folhetos); }
public IHttpActionResult GetFolhetos(int id) { IQueryable<Folhetos> query = db.Folhetos; Folhetos folhetos = db.Folhetos.Find(id); var resultado = new { folhetos.FolhetosID, folhetos.Titulo, folhetos.Descricao, folhetos.DataInic, folhetos.DataFim, folhetos.NomeEmpresa, }; if (resultado == null) { return NotFound(); } return Ok(resultado); }
public IHttpActionResult GetFolhetosPaginas(int id) { Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return NotFound(); } var path = "C:\\Users\\AlexandredosSantosSe\\dev\\WebAPI\\MvcFolhetos\\imagens\\folheto" + id; //var path = "~/imagens/folheto" + id ; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path); int count = dir.GetFiles().Length; //http://www.newtonsoft.com/json/help/html/SerializingJSON.htm //temporario(testing apenas, colocar em json.stringfy something like that) //string json = "{'npaginas': '" + count + "'}"; //ObjetoJson product = new ObjetoJson(); //product.paginas = count; //JsonConvert.SerializeObject(product); //string json = JsonConvert.SerializeObject(new { "Paginas" = count }); return Ok(count); }
// GET: Folhetos/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Folhetos folhetos = db.Folhetos.Find(id); if (folhetos == null) { return(HttpNotFound()); } var path = HttpContext.Server.MapPath("~/imagens/folheto" + id); //var path = "~/imagens/folheto" + id ; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path); int count = dir.GetFiles().Length; ViewBag.nPaginas = count; // gerar a lista de objetos de B que podem ser associados a A ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); ViewBag.id = id; return(View(folhetos)); }
public ActionResult Create([Bind(Include = "FolhetosID,Titulo,Descricao,Pasta,DataInic,DataFim,NomeEmpresa")] Folhetos folhetos, IEnumerable <HttpPostedFileBase> files, string[] opcoesEscolhidasDeTags) { // ModelState.IsValid --> confronta os dados fornecidos com o modelo // se não respeitar as regras do modelo, rejeita os dados if (!ModelState.IsValid) { return(View(folhetos)); } /// avalia se o array com a lista das escolhas de objetos de B associados ao objeto do tipo A /// é nula, ou não. /// Só poderá avanção se NÃO for nula if (opcoesEscolhidasDeTags == null) { ModelState.AddModelError("", "Necessita escolher pelo menos um valor de B para associar ao seu objeto de A."); // gerar a lista de objetos de B que podem ser associados a A ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); // devolver controlo à View return(View(folhetos)); } //// **************** Guardar páginas dos folhetos **************** // [DatabaseGenerated(DatabaseGeneratedOption.Identity)] -> Efetua criação do ID através do SEQUENCE //folhetos.FolhetosID = db.GetIdFolheto(); var maxIdFolheto = db.Folhetos.Max(x => x.FolhetosID) + 1; ////Criar pasta para poderem ser guardadas as fotografias do folheto //var path = "C:\\Users\\AlexandredosSantosSe\\dev\\MvcFolhetos\\MvcFolhetos\\imagens"; string subPath = ""; subPath = HttpContext.Server.MapPath("~/imagens/folheto" + maxIdFolheto); System.IO.Directory.CreateDirectory(subPath); ////Percorrer todas as imagens recebidas ////Efetua validaçãp int i = 1; foreach (var imagens in files) { //Alterar estes dois ifs para um unico só (Deixar para debugging apenas) if (imagens != null) { if (imagens.ContentLength > 0) { //depois colocar nomes especificos, mas por enquanto guardar fotos if (Path.GetExtension(imagens.FileName).ToLower() == ".jpeg") { //string imgDestino = Path.Combine(pathString, imagens.FileName); string filename = "pagina" + i + ".jpeg"; imagens.SaveAs(HttpContext.Server.MapPath("~/imagens/folheto" + maxIdFolheto + "/") + filename); i++; ViewBag.UploadSuccess = true; } } } } // **************** Guardar tags associadas ao folheto **************** // criar uma lista com os objetos escolhidos de B List <Tags> listaDeObjetosDeTagsEscolhidos = new List <Tags>(); foreach (string item in opcoesEscolhidasDeTags) { //procurar o objeto de B Tags b = db.Tags.Find(Convert.ToInt32(item)); // adicioná-lo à lista listaDeObjetosDeTagsEscolhidos.Add(b); } // adicionar a lista ao objeto de A folhetos.ListaDeTags = listaDeObjetosDeTagsEscolhidos; if (ModelState.IsValid) { db.Folhetos.Add(folhetos); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(folhetos)); }
public ActionResult Edit([Bind(Include = "FolhetosID,Titulo,Descricao,Pasta,DataInic,DataFim,NomeEmpresa")] Folhetos folhetos, string[] opcoesEscolhidasDeTags) { // ler da BD o objeto que se pretende editar var aa = db.Folhetos.Include(b => b.ListaDeTags).Where(b => b.FolhetosID == folhetos.FolhetosID).SingleOrDefault(); //Por equanto apenas estes 3 podem ser alterados if (ModelState.IsValid) { aa.Titulo = folhetos.Titulo; aa.Descricao = folhetos.Descricao; aa.NomeEmpresa = folhetos.NomeEmpresa; } else { // gerar a lista de objetos de B que podem ser associados a A ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); // devolver o controlo à View return(View(folhetos)); } // tentar fazer o UPDATE if (TryUpdateModel(aa, "", new string[] { nameof(aa.Titulo), nameof(aa.NomeEmpresa), nameof(aa.ListaDeTags) })) { // obter a lista de elementos de B var elementosDeTags = db.Tags.ToList(); if (opcoesEscolhidasDeTags != null) { // se existirem opções escolhidas, vamos associá-las foreach (var bb in elementosDeTags) { if (opcoesEscolhidasDeTags.Contains(bb.ID.ToString())) { // se uma opção escolhida ainda não está associada, cria-se a associação if (!aa.ListaDeTags.Contains(bb)) { aa.ListaDeTags.Add(bb); } } else { // caso exista associação para uma opção que não foi escolhida, // remove-se essa associação aa.ListaDeTags.Remove(bb); } } } else { // não existem opções escolhidas! // vamos eliminar todas as associações foreach (var bb in elementosDeTags) { if (aa.ListaDeTags.Contains(bb)) { aa.ListaDeTags.Remove(bb); } } } // guardar as alterações db.SaveChanges(); // devolver controlo à View return(RedirectToAction("Index")); } // se cheguei aqui, é pq alguma coisa correu mal ModelState.AddModelError("", "Alguma coisa correu mal..."); // gerar a lista de objetos de B que podem ser associados a A ViewBag.ListaDeTags = db.Tags.OrderBy(b => b.Info).ToList(); // visualizar View... return(View(folhetos)); }