Beispiel #1
0
        public void custom_algorithm(Personalizacion personalizacion, List<Producto> products, Usuario user, string tiendaID)
        {
            Assembly ddl = Assembly.Load(personalizacion.algoritmo);
            var t = ddl.GetType("Chebay.AlgorithmDLL.ChebayAlgorithm");
            dynamic c = Activator.CreateInstance(t);
            DataRecomendacion dr = new DataRecomendacion { UsuarioID = user.UsuarioID };
            Thread timeThread = new Thread(() =>
            {
                try
                {
                    dr.productos = (List<DataProducto>)c.getProducts(products, user);
                    IDALUsuario udal = new DALUsuarioEF();
                    udal.AgregarRecomendacionesUsuario(tiendaID, dr);
                }
                catch (Exception e)
                {
                    //si falla entonces default
                    default_recomendation_algorithm(products, user, tiendaID);
                }
            });

            timeThread.Start();

            bool finished = timeThread.Join(5000);
            if (!finished)
            {
                Debug.WriteLine("ALGORITMO PERSONALIZADO SUSPENDIDO... EXCESO TIEMPO");
                timeThread.Abort();
                default_recomendation_algorithm(products,user,tiendaID);
            }
        }
Beispiel #2
0
        public void ActualizarAlgoritmoPersonalizacion(Personalizacion pers)
        {
            try
            {
                chequearTienda(pers.PersonalizacionID);
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    Personalizacion p = context.personalizaciones.Find(pers.PersonalizacionID);
                    p.algoritmo = pers.algoritmo;
                    context.SaveChanges();
                }

            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
Beispiel #3
0
 //--PERSONALIZACIÓN DE LA TIENDA--
 public void PersonalizarTienda(Personalizacion pr, string idTienda)
 {
     try
     {
         chequearTienda(idTienda);
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qPers = from per in context.personalizaciones
                         where per.PersonalizacionID == idTienda
                         select per;
             if (qPers.Count() == 0) //Si no existe personalización.
             {
                 context.personalizaciones.Add(pr);
                 context.SaveChanges();
             }
             else //Si existe y hay que actualizarla.
             {
                 Personalizacion p = qPers.FirstOrDefault();
                 p.datos = pr.datos;
                 p.template = pr.template;
                 p.backgroud_image = pr.backgroud_image;
                 p.css = pr.css;
                 context.SaveChanges();
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
Beispiel #4
0
        //--TIENDAS--
        public void AgregarTienda(Tienda tienda, string idAdmin)
        {
            try
            {
                if (tienda == null)
                    throw new Exception("Debe pasar una tienda.");
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    var qAdmin = from ad in context.administradores
                                 where ad.AdministradorID == idAdmin
                                 select ad;
                    if (tienda.administradores == null)
                        tienda.administradores = new HashSet<Administrador>();
                    tienda.administradores.Add(qAdmin.FirstOrDefault());
                    Personalizacion p = new Personalizacion
                    {
                        PersonalizacionID = tienda.TiendaID,
                        template = 1,
                        algoritmo = null
                    };
                    context.personalizaciones.Add(p);
                    context.tiendas.Add(tienda);
                    context.SaveChanges();

                    Debug.WriteLine("Creando schema...");
                    ChebayDBContext.ProvisionTenant(tienda.TiendaID);
                    Debug.WriteLine("Tienda " + tienda.TiendaID + " creada con éxito.");

                    //Crea la Categoria Raiz.
                    var schema = ChebayDBContext.CreateTenant(tienda.TiendaID);
                    CategoriaCompuesta raiz = new CategoriaCompuesta();
                    raiz.Nombre = "/";
                    raiz.hijas = new List<Categoria>();
                    schema.categorias.Add(raiz);
                    schema.SaveChanges();
                    Debug.WriteLine("Categoría raíz de " + tienda.TiendaID + " creada con éxito.");
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
                //Dropear las tablas creadas.
            }
        }