public void AgregarCategoriaCompuesta() { using (var schema = ChebayDBContext.CreateTenant(urlTest)) { CategoriaCompuesta father = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, 1); System.Console.WriteLine(father.CategoriaID + father.Nombre); Categoria c = new CategoriaCompuesta { Nombre = "CatCompuestaPrueba", padre = father, hijas = new HashSet<Categoria>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c, urlTest); CategoriaCompuesta cc = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, 2); Assert.AreEqual(cc.CategoriaID, 2); Assert.AreEqual(cc.Nombre, "CatCompuestaPrueba"); //Assert.AreEqual(cc.padre.CategoriaID, 1); } }
public void AgregarCategorias() { List<Categoria> lc = new List<Categoria>(); CategoriaCompuesta father = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, 1); for (int i = 1; i < 10; i++) { CategoriaCompuesta cc = new CategoriaCompuesta { Nombre = "CatPrueba" + i.ToString(), padre = father }; lc.Add(cc); } for (int i = 1; i < 10; i++) { CategoriaSimple cc = new CategoriaSimple { Nombre = "CatPruebaSimple" + i.ToString(), padre = father }; lc.Add(cc); } it.AgregarCategorias(lc, urlTest); for (int i = 3; i < 10; i++) { CategoriaCompuesta c = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, i + 1); Assert.AreEqual(c.CategoriaID, i + 1); Assert.AreEqual(c.Nombre, "CatPrueba" + (i - 2).ToString()); // Assert.AreEqual(c.padre.CategoriaID, 1); } }
public void AgregarVariasCategorias() { CategoriaCompuesta father = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, 1); //PRIMER NIVEL Categoria c = new CategoriaCompuesta { Nombre = "Computadoras", padre = father, hijas = new HashSet<Categoria>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c, urlTest); CategoriaCompuesta cc = (CategoriaCompuesta)it.ObtenerCategoria(urlTest, 2); Categoria c2 = new CategoriaCompuesta { Nombre = "Hardware", padre = father, hijas = new HashSet<Categoria>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c2, urlTest); Categoria c3 = new CategoriaSimple { Nombre = "Software", padre = father, productos = new HashSet<Producto>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c3, urlTest); //SEGUNDO NIVEL //COMPUTADORAS Categoria c11 = new CategoriaCompuesta { Nombre = "Laptops", padre = (CategoriaCompuesta)c, hijas = new HashSet<Categoria>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c11, urlTest); Categoria c12 = new CategoriaCompuesta { Nombre = "Torres", padre = (CategoriaCompuesta)c, hijas = new HashSet<Categoria>(), tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c12, urlTest); //HARDWARE Categoria c21 = new CategoriaSimple { Nombre = "Memoria RAM", padre = (CategoriaCompuesta)c2, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c21, urlTest); Categoria c22 = new CategoriaSimple { Nombre = "Discos Duros", padre = (CategoriaCompuesta)c2, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c22, urlTest); Categoria c23 = new CategoriaSimple { Nombre = "Motherboards", padre = (CategoriaCompuesta)c2, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c23, urlTest); //TERCER NIVEL //Laptops Categoria c111 = new CategoriaSimple { Nombre = "Toshiba", padre = (CategoriaCompuesta)c11, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c111, urlTest); Categoria c112 = new CategoriaSimple { Nombre = "Sony", padre = (CategoriaCompuesta)c11, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c112, urlTest); Categoria c113 = new CategoriaSimple { Nombre = "Samsung", padre = (CategoriaCompuesta)c11, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c113, urlTest); Categoria c114 = new CategoriaSimple { Nombre = "Apple", padre = (CategoriaCompuesta)c11, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c114, urlTest); //TORRES Categoria c121 = new CategoriaSimple { Nombre = "AMD", padre = (CategoriaCompuesta)c12, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c121, urlTest); Categoria c122 = new CategoriaSimple { Nombre = "INTEL", padre = (CategoriaCompuesta)c12, tipoatributos = new HashSet<TipoAtributo>() }; it.AgregarCategoria(c122, urlTest); }
//--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. } }
public String recursionDropDown(CategoriaCompuesta categoria, int profundidad) { string resultado = ""; resultado += "<li role=\"presentation\"><a role=\"menuitem\" tabindex=\"-1\" style=\"padding-left: " + profundidad + "px;\" onclick=\"renderProductosCategoria(" + categoria.CategoriaID + ")\">" + categoria.Nombre + "</a></li>"; //debo crear un arreglo JSON con las categorias if (categoria.hijas != null) { if (categoria.hijas.Count() > 0) { foreach (Categoria hija in categoria.hijas) { if (hija is CategoriaCompuesta) { resultado += recursionDropDown((CategoriaCompuesta)hija, profundidad + 30); } else { int profHija = profundidad + 30; resultado += "<li role=\"presentation\"><a role=\"menuitem\" tabindex=\"-1\" style=\"padding-left: " + profHija + "px;\" onclick=\"renderProductosCategoria(" + hija.CategoriaID + ")\">" + hija.Nombre + "</a></li>"; } } } } return resultado; }
public string RecursionCategorias(CategoriaCompuesta categoria) { string resultado = ""; resultado += "<li><button class=\"btn btn-link disabled\" data-id=\"" + categoria.CategoriaID + "\">" + categoria.Nombre + "</button>"; //debo crear un arreglo JSON con las categorias if (categoria.hijas != null) { if (categoria.hijas.Count() > 0) { resultado += "<ul class=\"ulfix\">"; foreach (Categoria hija in categoria.hijas) { if (hija is CategoriaCompuesta) { resultado += RecursionCategorias((CategoriaCompuesta)hija); } else { //string ancestros2 = obtenerAncestros(hija.padre); resultado += "<li><button class=\"btn btn-link\" id=\"item-" + hija.CategoriaID + "\" data-id=\"" + hija.CategoriaID + "\" onclick=\"seleccionarCategoriaSimple(" + hija.CategoriaID + ")\">" + hija.Nombre + "</button></li>"; } } resultado += "</ul>"; } } resultado += "</li>"; return resultado; }
public string obtenerAncestros(CategoriaCompuesta cc) { CategoriaCompuesta actual = cc; List<long> ancestros = new List<long>(); while (actual.CategoriaID != 1) { ancestros.Add(actual.CategoriaID); actual = actual.padre; } ancestros.Add(1); return string.Join(",", ancestros.ToArray()); }