public List <Platillos> buscarPlatillo(string buscar) { List <Platillos> platillos = new List <Platillos>(); DataSet ds = Select($"select * from vplatillos where NOMBRE like '%{buscar}%'"); foreach (DataRow r in ds.Tables[0].Rows) { Platillos p = new Platillos(); p.ID_PLATILLOS = Convert.ToInt32(r["ID_PLATILLOS"]); p.ID_RESTAURANTES = Convert.ToInt32(r["ID_RESTAURANTES"]); p.ID_TIPO = Convert.ToInt32(r["ID_TIPO"]); p.NOMBRE = Convert.ToString(r["NOMBRE"]); try { p.RATE = (decimal)Math.Round(float.Parse(r["RATE"].ToString())); } catch { } p.PRECIO = Convert.ToDecimal(r["PRECIO"]); p.DESCRIPCION = Convert.ToString(r["DESCRIPCION"]); p.FECHA = Convert.ToString(r["FECHA"]); p.TIPO = Convert.ToString(r["TIPO"]); p.RESTAURANTE = Convert.ToString(r["RESTAURANTE"]); p.URL = Convert.ToString(r["URL"]); if (p.URL == "") { p.URL = "/images/sin-imagen.gif"; } platillos.Add(p); } return(platillos); }
public List <Platillos> GetPlatillo(int id) { DataSet dsAll = (id == -1) ? View(VIEWS.vPlatillos) : View(VIEWS.vPlatillos, "ID_PLATILLOS=" + id); List <Platillos> r = new List <Platillos>(); if (dsAll.Tables.Count == 0) { return(r); } foreach (DataRow row in dsAll.Tables[0].Rows) { Platillos np = new Platillos(); np.DESCRIPCION = Convert.ToString(row["DESCRIPCION"]); np.ID_PLATILLOS = Convert.ToInt32(row["ID_PLATILLOS"]); np.ID_RESTAURANTES = Convert.ToInt32(row["ID_RESTAURANTES"]); np.ID_TIPO = Convert.ToInt32(row["ID_TIPO"]); np.NOMBRE = Convert.ToString(row["NOMBRE"]); np.PRECIO = Convert.ToDecimal(row["PRECIO"]); try { np.RATE = Convert.ToDecimal(row["RATE"]); } catch { } np.URL = Convert.ToString(row["URL"]); np.TIPO = Convert.ToString(row["TIPO"]); np.RESTAURANTE = Convert.ToString(row["RESTAURANTE"]); np.FECHA = Convert.ToString(row["FECHA"]); r.Add(np); } return(r); }
public List <Platillos> sp_UltimosPlatillos(int offset, int count) { DataSet ds = new DataSet(); List <Platillos> platillos = new List <Platillos>(); adapter = new SqlDataAdapter("sp_UltimosPlatillos", conexion); adapter.SelectCommand.CommandType = CommandType.StoredProcedure; adapter.SelectCommand.Parameters.Add(new SqlParameter("@start_row", offset)); adapter.SelectCommand.Parameters.Add(new SqlParameter("@end_row", count)); adapter.Fill(ds); adapter.Dispose(); if (ds.Tables.Count == 0) { return(platillos); } foreach (DataRow r in ds.Tables[0].Rows) { Platillos nl = new Platillos(); nl.DESCRIPCION = Convert.ToString(r["DESCRIPCION"]); nl.FECHA = Convert.ToString(r["FECHA"]); nl.ID_PLATILLOS = Convert.ToInt32(r["ID_PLATILLOS"]); nl.ID_RESTAURANTES = Convert.ToInt32(r["ID_RESTAURANTES"]); nl.ID_TIPO = Convert.ToInt32(r["ID_TIPO"]); nl.NOMBRE = Convert.ToString(r["NOMBRE"]); nl.PRECIO = Convert.ToDecimal(r["PRECIO"]); try { nl.RATE = Convert.ToDecimal(r["RATE"].ToString()); } catch { } nl.RESTAURANTE = Convert.ToString(r["RESTAURANTE"]); nl.TIPO = Convert.ToString(r["TIPO"]); nl.URL = Convert.ToString(r["URL"]); if (nl.URL == "") { nl.URL = "/images/sin-imagen.gif"; } platillos.Add(nl); } return(platillos); }
public List <Platillos> sp_RecomendarProductosPersonalizado(string user) { DataSet ds = new DataSet(); adapter = new SqlDataAdapter("sp_RecomendacionPersonalizada", conexion); adapter.SelectCommand.CommandType = CommandType.StoredProcedure; adapter.SelectCommand.Parameters.Add(new SqlParameter("@user", user)); adapter.Fill(ds); adapter.Dispose(); List <Platillos> platillos = new List <Platillos>(); Dictionary <int, int> unificated = new Dictionary <int, int>(); if (ds.Tables.Count == 0) { return(sp_RecomendarProductos()); } foreach (DataRow r in ds.Tables[0].Rows) { string ruser = r["usuarioa"].ToString(); Dictionary <int, int> dic1 = GetValoraciones(ruser); Dictionary <int, int> dic2 = GetValoraciones(user); foreach (int k in dic1.Keys) { if (!dic2.ContainsKey(k)) { unificated.Add(k, dic1[k]); } } } string into = ""; foreach (int i in unificated.Keys) { into += i + ","; } if (into == "") { return(sp_RecomendarProductos()); } else { into = into.Substring(0, into.Length - 1); } DataSet rsTops = Select($"select * from vPlatillos where id_platillos in ({into}) order by RATE desc"); foreach (DataRow r in rsTops.Tables[0].Rows) { Platillos p = new Platillos(); p.ID_PLATILLOS = Convert.ToInt32(r["ID_PLATILLOS"]); p.ID_RESTAURANTES = Convert.ToInt32(r["ID_RESTAURANTES"]); p.ID_TIPO = Convert.ToInt32(r["ID_TIPO"]); p.NOMBRE = Convert.ToString(r["NOMBRE"]); try { p.RATE = (decimal)Math.Round(float.Parse(r["RATE"].ToString())); } catch { } p.PRECIO = Convert.ToDecimal(r["PRECIO"]); p.DESCRIPCION = Convert.ToString(r["DESCRIPCION"]); p.FECHA = Convert.ToString(r["FECHA"]); p.TIPO = Convert.ToString(r["TIPO"]); p.RESTAURANTE = Convert.ToString(r["RESTAURANTE"]); p.URL = Convert.ToString(r["URL"]); if (p.URL == "") { p.URL = "/images/sin-imagen.gif"; } platillos.Add(p); } if (platillos.Count < 10) { List <Platillos> tmp = sp_RecomendarProductos(); Random r = new Random(); if (platillos.Count + tmp.Count > 10) { while (platillos.Count < 10) { Platillos t = tmp[r.Next(0, tmp.Count - 1)]; if (!platillos.Contains(t)) { platillos.Add(t); } } } else { platillos.AddRange(tmp); } } return((platillos.Count > 0) ? platillos : sp_RecomendarProductos()); }
public List <Platillos> sp_RecomendarProductos() { DataSet rsTops = Select("select top 10 * from vPlatillos order by rate desc"); DataSet rsClicks = Select("select top 10 p.* from ACCIONCLICK a inner join vPlatillos p on p.ID_PLATILLOS = a.ID_PLATILLOS order by CANTIDAD desc"); List <Platillos> platillos = new List <Platillos>(); foreach (DataRow r in rsTops.Tables[0].Rows) { Platillos p = new Platillos(); p.ID_PLATILLOS = Convert.ToInt32(r["ID_PLATILLOS"]); p.ID_RESTAURANTES = Convert.ToInt32(r["ID_RESTAURANTES"]); p.ID_TIPO = Convert.ToInt32(r["ID_TIPO"]); p.NOMBRE = Convert.ToString(r["NOMBRE"]); try { p.RATE = (decimal)Math.Round(float.Parse(r["RATE"].ToString())); } catch { } p.PRECIO = Convert.ToDecimal(r["PRECIO"]); p.DESCRIPCION = Convert.ToString(r["DESCRIPCION"]); p.FECHA = Convert.ToString(r["FECHA"]); p.TIPO = Convert.ToString(r["TIPO"]); p.RESTAURANTE = Convert.ToString(r["RESTAURANTE"]); p.URL = Convert.ToString(r["URL"]); if (p.URL == "") { p.URL = "/images/sin-imagen.gif"; } platillos.Add(p); } foreach (DataRow r in rsClicks.Tables[0].Rows) { Platillos p = new Platillos(); p.ID_PLATILLOS = Convert.ToInt32(r["ID_PLATILLOS"]); p.ID_RESTAURANTES = Convert.ToInt32(r["ID_RESTAURANTES"]); p.ID_TIPO = Convert.ToInt32(r["ID_TIPO"]); p.NOMBRE = Convert.ToString(r["NOMBRE"]); try { p.RATE = (decimal)Math.Round(float.Parse(r["RATE"].ToString())); } catch { } p.PRECIO = Convert.ToDecimal(r["PRECIO"]); p.DESCRIPCION = Convert.ToString(r["DESCRIPCION"]); p.FECHA = Convert.ToString(r["FECHA"]); p.TIPO = Convert.ToString(r["TIPO"]); p.RESTAURANTE = Convert.ToString(r["RESTAURANTE"]); p.URL = Convert.ToString(r["URL"]); if (p.URL == "") { p.URL = "/images/sin-imagen.gif"; } platillos.Add(p); } if (platillos.Count > 10) { Random rnd = new Random(); for (int i = 0; i < 10; i++) { bool removed = false; int antiloop = 10; do { Platillos tr = platillos[rnd.Next(0, platillos.Count - 1)]; antiloop--; if (antiloop == 10) { removed = true; } if (tr.RATE < 3) { platillos.Remove(tr); removed = true; } } while (!removed); } } return((platillos.Count > 0) ? platillos : sp_UltimosPlatillos(0, 10)); }