/// <summary> /// Trae todos los articulos o noticias relacionados a una etiqueta /// </summary> /// <param name="etiqueta">nombre de la etiqueta seleccionada</param> /// <param name="tipo">puede ser articulos o noticias</param> /// <returns></returns> public ActionResult Etiqueta(string etiqueta = "", string tipo = "articulos") { ///seleccionamos de la tabla blog y traemos toda la informacion ordenada por fecha var lst_data = from p in db.blog orderby p.Fecha ascending select new BlogShort { Id = p.Id, Titulo = p.Titulo, Imagen = p.Imagen, Descripcion = p.Descripcion, Etiquetas = p.Etiquetas, Especies = p.Especies, Tipo = p.Tipo }; //filtramos la lista donde se contenga el tipo y la etiqueta recibida lst_data = lst_data.Where(s => s.Etiquetas.Contains(etiqueta)).Where(s => s.Tipo.Equals(tipo)); ViewBag.lst_data = lst_data.ToList(); int numero = lst_data.ToList().Count; ViewBag.numero = numero; string idespecie2 = "14"; if (numero > 0) { var primer_icono = new malta.Models.BlogShort(); primer_icono = lst_data.ToList()[0]; string[] split = (primer_icono.Especies).Split('|'); foreach (string s in split) { if (!s.Equals("")) { idespecie2 = s; continue; } } } string img_especie = ""; IEnumerable <especies> especie_query = db.Database.SqlQuery <especies>("SELECT * FROM especies WHERE Id=" + idespecie2); var primer_especie = new malta.Models.especies(); primer_especie = especie_query.ToList()[0]; img_especie = primer_especie.Icono; ViewBag.img_especie = img_especie; nav();//llamamos a la funcion nav que nos ayuda a generar el menu lateral izquierdo return(View()); }
/// <summary> /// Vista detallada de un articulo o notica /// </summary> /// <param name="id"> identificador del articulo o noticia en la tabla</param> /// <param name="tipo">variable para distingir atriculo o noticia</param> /// <returns>informacion del blog</returns> public ActionResult Ficha(int id = 1, string tipo = "articulos") { IEnumerable <blog> lst_data = db.Database.SqlQuery <blog>("SELECT * FROM blog WHERE Tipo= '" + tipo + "' and Id=" + id); var send_productos = new malta.Models.blog(); if (lst_data.ToList().Count > 0) { send_productos = lst_data.ToList()[0]; } ViewBag.lst_data = send_productos; int numero = lst_data.ToList().Count; string idespecie2 = "14"; if (numero > 0) { var primer_icono = new malta.Models.blog(); primer_icono = lst_data.ToList()[0]; string[] split = (primer_icono.Especies).Split('|'); foreach (string s in split) { if (!s.Equals("")) { idespecie2 = s; continue; } } } string img_especie = ""; IEnumerable <especies> especie_query = db.Database.SqlQuery <especies>("SELECT * FROM especies WHERE Id=" + idespecie2); var primer_especie = new malta.Models.especies(); try { primer_especie = especie_query.ToList()[0]; img_especie = primer_especie.Icono; } catch (Exception) { } ViewBag.img_especie = img_especie; nav(); return(View()); }
private MaltaDBEntities db = new MaltaDBEntities();//se hace instancia a la bd /// <summary> /// la funcion index trae por default a todos los contenidos de tipo articulo de la tabla blog /// </summary> /// <param name="idespecie"> separado por pipes para saber que especie o especies son buscadas</param> /// <param name="tipo"> tenemos dos tipos en la tabla blog </param> /// <returns></returns> public ActionResult Index(string idespecie = "|0|", string tipo = "articulos") { string[] split = idespecie.Split('|');///utilizamos doble pipe para separar el numero de la especie, ya sea 1,2,3... etc string where = ""; int count = 0; ///si el idespecie que se recibio de parametro es unicamente 0 en el query no tomaremos ese parametro ///para el where if (idespecie.Equals("|0|")) { where = ""; where = "([Extent1].[Tipo] = 'articulos') "; } else { where = "";//si se recibio un idespecie diferente a 0, significa que puede contener uno o mas idespecie el articulo e //entonces hacemos un foreach para recorer cada idespecie y añadirlo al where foreach (string item in split) { if (!item.Equals("")) { if (count == 0) { where += "([Extent1].[Especies] LIKE '%|" + item + "|%' ESCAPE '~')"; idespecie = item; } else { where += "OR ([Extent1].[Especies] LIKE '%|" + item + "|%' ESCAPE '~') "; } count++; } } string final = "(" + where + ") AND ([Extent1].[Tipo] = 'articulos' )"; where = final; } IEnumerable <BlogShort> lst_data = db.Database.SqlQuery <BlogShort>("SELECT [Project1].[Id] AS[Id], [Project1].[Titulo] AS[Titulo],[Project1].[Imagen] AS[Imagen], [Project1].[Descripcion] AS[Descripcion], [Project1].[Etiquetas] AS[Etiquetas], [Project1].[Especies] AS[Especies] FROM(SELECT [Extent1].[Id] AS[Id], [Extent1].[Fecha] AS[Fecha], [Extent1].[Titulo] AS[Titulo], [Extent1].[Descripcion] AS[Descripcion], [Extent1].[Etiquetas] AS[Etiquetas], [Extent1].[Imagen] AS[Imagen], [Extent1].[Especies] AS[Especies] FROM [dbo].[blog] AS[Extent1] WHERE " + where + ") AS[Project1] ORDER BY[Project1].[Fecha] ASC"); //listamos todos los resultados del query y los pasamos como variable a travez del viewbag ViewBag.lst_data = lst_data.ToList(); int numero = lst_data.ToList().Count; ViewBag.numero = numero; string img_especie = ""; if (idespecie.Equals("|0|"))//si el idespecie es 0, ponemos de imagen background en la busqueda el bg de logo malta { ViewBag.nombre_especie = "Todas las especies "; ViewBag.img_especie = "Content/img/imago-malta.svg"; } else { //si hay un idespecie, entonces buscamos la imagen background correspondiente a la especie seleccionada IEnumerable <especies> especie_query = db.Database.SqlQuery <especies>("SELECT * FROM especies WHERE Id=" + idespecie); var primer_especie = new malta.Models.especies(); primer_especie = especie_query.ToList()[0]; img_especie = primer_especie.Icono; ViewBag.nombre_especie = primer_especie.Nombre; ViewBag.img_especie = img_especie; } nav();//llamamos a la funcion nav que nos ayuda a generar el menu lateral izquierdo return(View()); }