コード例 #1
0
        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));
        }
コード例 #2
0
        // 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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            Folhetos folhetos = db.Folhetos.Find(id);

            db.Folhetos.Remove(folhetos);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
 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;
 }
コード例 #6
0
        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);
        }
コード例 #7
0
        // 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));
        }
コード例 #8
0
        // 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));
        }
コード例 #9
0
        // 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));
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        // 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));
        }
コード例 #15
0
        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));
        }
コード例 #16
0
        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));
        }