예제 #1
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;
     }
 }
예제 #2
0
        //--ATRIBUTOS DE SESION ADMINISTRADOR--
        public void AgregarAtributoSesion(AtributoSesion AtributoS)
        {
            using (var context = ChebayDBPublic.CreatePublic())
            {
                //AtributoSesion atrs = context.atributossesion.Find(AtributoS.AtributoSesionID);
                var query = from a in context.administradores.Find(AtributoS.AdministradorID).atributosSesion
                            where a.AtributoSesionID.Equals(AtributoS.AtributoSesionID)
                            select a;

                Debug.WriteLine(AtributoS.AdministradorID + AtributoS.AtributoSesionID);

                if (query.Count() == 0)
                {
                    Debug.WriteLine("Agregando atributo...");
                    context.atributossesion.Add(AtributoS);
                    context.SaveChanges();
                }
                else
                { //update
                    Debug.WriteLine("Update atributo...");
                    query.First().Datos = AtributoS.Datos;
                    context.SaveChanges();
                }
            }
        }
예제 #3
0
        public List <Tienda> ListarTiendas(string idAdmin)
        {
            try
            {
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    var qAdmin = from adm in context.administradores
                                 where adm.AdministradorID == idAdmin
                                 select adm;
                    Administrador a = qAdmin.FirstOrDefault();

                    var qTiendas = from tnd in context.tiendas
                                   select tnd;
                    List <Tienda> aux = qTiendas.ToList();
                    List <Tienda> ret = new List <Tienda>();
                    foreach (Tienda t in aux)
                    {
                        if (t.administradores.Contains(a))
                        {
                            ret.Add(t);
                        }
                    }
                    return(ret);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
예제 #4
0
 public List <AtributoSesion> ObtenerAtributosSesion(string AdminID)
 {
     using (var context = ChebayDBPublic.CreatePublic())
     {
         return(context.administradores.Find(AdminID).atributosSesion.ToList());
     }
 }
예제 #5
0
 //--ADMINISTRADORES--
 public void AgregarAdministrador(Administrador admin)
 {
     try
     {
         if (admin == null)
         {
             throw new Exception("Debe pasar un administrador.");
         }
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var query = from adm in context.administradores
                         where adm.AdministradorID == admin.AdministradorID
                         select adm;
             if (query.Count() == 0)
             {
                 context.administradores.Add(admin);
                 context.SaveChanges();
                 Debug.WriteLine("Administrador " + admin.AdministradorID + " creado correctamente");
             }
             else
             {
                 throw new Exception("Ya existe un administrador " + admin.AdministradorID);
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #6
0
 void chequearTienda(string idTienda)
 {
     try
     {
         if (idTienda == null)
         {
             throw new Exception("Debe pasar una tienda.");
         }
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qTienda = from t in context.tiendas
                           where t.TiendaID == idTienda
                           select t;
             if (qTienda.Count() == 0)
             {
                 throw new Exception("No existe la tienda" + idTienda);
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #7
0
 public bool ExisteTienda(string idTienda)
 {
     using (var c = ChebayDBPublic.CreatePublic())
     {
         Tienda t = c.tiendas.Find(idTienda);
         if (t == null)
         {
             return(false);
         }
     }
     return(true);
 }
예제 #8
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.
            }
        }
예제 #9
0
 public void EliminarAtributoSesion(string AdminID, string AtributoID)
 {
     using (var context = ChebayDBPublic.CreatePublic())
     {
         var query = from s in context.atributossesion
                     where s.AdministradorID.Equals(AdminID) &&
                     s.AtributoSesionID.Equals(AtributoID)
                     select s;
         AtributoSesion atrs = query.FirstOrDefault(null);
         if (atrs != null)
         {
             context.atributossesion.Remove(atrs);
         }
     }
 }
예제 #10
0
 public List <Tienda> ObtenerTodasTiendas()
 {
     try
     {
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qTienda = from t in context.tiendas
                           select t;
             return(qTienda.ToList());
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #11
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;
     }
 }
예제 #12
0
 public bool AutenticarAdministrador(string idAdministrador, string passwd)
 //Devuelve true si es el password correcto para el usuario.
 {
     Debug.WriteLine("IDADMIN:" + idAdministrador);
     try
     {
         if (idAdministrador == null)
         {
             throw new Exception("Debe pasar el identificador de un administrador.");
         }
         if (passwd == null)
         {
             throw new Exception("Debe pasar una contraseña.");
         }
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var query = from admin in context.administradores
                         where admin.AdministradorID.Equals(idAdministrador)
                         select admin;
             if (query.Count() == 0)
             {
                 throw new Exception("El nombre de usuario no es correcto.");
             }
             else
             {
                 Administrador adm = query.FirstOrDefault();
                 if (adm != null && adm.password.Equals(passwd))
                 {
                     Debug.WriteLine(idAdministrador + " ha sido correctamente autenticado.");
                     return(true);
                 }
                 else
                 {
                     throw new Exception("La contraseña no es correcta.");
                 }
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #13
0
 public Tienda ObtenerTienda(string idTienda)
 {
     try
     {
         chequearTienda(idTienda);
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var query = from t in context.tiendas
                         where t.TiendaID == idTienda
                         select t;
             return(query.FirstOrDefault());
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #14
0
 public Personalizacion ObtenerPersonalizacionTienda(string idTienda)
 {
     try
     {
         chequearTienda(idTienda);
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qTienda = from tnd in context.tiendas
                           where tnd.TiendaID == idTienda
                           select tnd;
             Tienda t = qTienda.FirstOrDefault();
             return(t.personalizacion);
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #15
0
        public List <Tienda> ObtenerPagina(int n, string idAdmin)
        {
            try
            {
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    //Chequeo que exista el administrador
                    var qAdmin = from adm in context.administradores
                                 where adm.AdministradorID == idAdmin
                                 select adm;
                    if (qAdmin.Count() == 0)
                    {
                        throw new Exception("No existe el administrador " + idAdmin);
                    }
                    Administrador a = qAdmin.FirstOrDefault();

                    var qTienda = from t in context.tiendas
                                  select t;
                    List <Tienda> lt   = qTienda.ToList();
                    List <Tienda> ret  = new List <Tienda>();
                    int           cant = 1;
                    foreach (Tienda t in lt)
                    {
                        if (t.administradores.Contains(a))
                        {
                            if ((cant >= (n - 1) * 8) && (cant <= n * 8 - 1))
                            {
                                ret.Add(t);
                            }
                            cant++;
                        }
                    }
                    return(ret);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
예제 #16
0
 public void EliminarPersonalizacion(string idTienda)
 {
     try
     {
         chequearTienda(idTienda);
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qTienda = from tnd in context.personalizaciones
                           where tnd.PersonalizacionID == idTienda
                           select tnd;
             Personalizacion t = qTienda.FirstOrDefault();
             context.personalizaciones.Remove(t);
             context.SaveChanges();
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #17
0
 public void EliminarAdministrador(string idAdministrador)
 {
     try
     {
         if (idAdministrador == null)
         {
             throw new Exception("Debe pasar el identificador de un administrador.");
         }
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var query = from adm in context.administradores
                         where adm.AdministradorID == idAdministrador
                         select adm;
             context.administradores.Remove(query.FirstOrDefault());
             context.SaveChanges();
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
     }
 }
예제 #18
0
 public Administrador ObtenerAdministrador(string idAdministrador)
 {
     try
     {
         if (idAdministrador == null)
         {
             throw new Exception("Debe pasar el identificador de un administrador.");
         }
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var query = from adm in context.administradores
                         where adm.AdministradorID == idAdministrador
                         select adm;
             return(query.FirstOrDefault());
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #19
0
 public void ActualizarTienda(Tienda tienda)
 {
     try
     {
         chequearTienda(tienda.TiendaID);
         using (var context = ChebayDBPublic.CreatePublic())
         {
             var qTienda = from t in context.tiendas
                           where t.TiendaID == tienda.TiendaID
                           select t;
             Tienda tnd = qTienda.FirstOrDefault();
             tnd.descripcion = tienda.descripcion;
             tnd.nombre      = tienda.nombre;
             context.SaveChanges();
             Debug.WriteLine("Tienda " + tienda.TiendaID + " actualizada con éxito.");
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.Message);
         throw e;
     }
 }
예제 #20
0
        public int ObtenerCantPaginas(string idAdmin)
        {
            try
            {
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    //Chequeo que exista el administrador
                    var qAdmin = from adm in context.administradores
                                 where adm.AdministradorID == idAdmin
                                 select adm;
                    if (qAdmin.Count() == 0)
                    {
                        throw new Exception("No existe el administrador " + idAdmin);
                    }

                    Administrador a = qAdmin.FirstOrDefault();

                    var qTiendas = from tnd in context.tiendas.Include("administradores")
                                   select tnd;
                    int           ret = 0;
                    List <Tienda> aux = qTiendas.ToList();
                    foreach (Tienda t in aux)
                    {
                        if (t.administradores.Contains(a))
                        {
                            ret++;
                        }
                    }
                    return((int)Math.Ceiling((double)ret / 8));
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
예제 #21
0
        public void EliminarTienda(string idTienda)
        {
            try
            {
                using (var context = ChebayDBPublic.CreatePublic())
                {
                    var qTienda = from t in context.tiendas
                                  where t.TiendaID.Equals(idTienda)
                                  select t;
                    if (qTienda.Count() != 0)
                    {
                        //EliminarAdministrador la Tienda.
                        Tienda tnd = qTienda.FirstOrDefault();
                        context.tiendas.Remove(tnd);

                        //Elimina la personalización de la tienda.
                        var qPers = from p in context.personalizaciones
                                    where p.PersonalizacionID == idTienda
                                    select p;
                        context.personalizaciones.Remove(qPers.FirstOrDefault());

                        context.SaveChanges();
                        Debug.WriteLine("La tienda " + idTienda + " ha sido eliminada.");
                    }
                    else
                    {
                        Debug.WriteLine("La tienda " + idTienda + " no existe.");
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
예제 #22
0
        public void Test0Inicial()
        {
            ChebayDBPublic cdbp = new ChebayDBPublic();
            using (var schema = ChebayDBPublic.CreatePublic())
            {
                Debug.WriteLine("INICIO");
                Debug.WriteLine("0.1. Elimino TestAdmin.");
                it.EliminarAdministrador(adminTest);

                it.EliminarPersonalizacion(urlTest);
                Debug.WriteLine("\n0.2. Elimino TestURL.");
                it.EliminarTienda(urlTest);
            }
        }