Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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));
        }