public static Produto[] List() { ArrecebaDLLDb db = new ArrecebaDLLDb(); var query = from p in db.Produtos join c in db.Categorias on p.CategoriaId equals c.CategoriaId join e in db.Empresas on p.EmpresaId equals e.EmpresaId select new { Produto = p, Categoria = c, Empresa = e }; List<Produto> List = new List<Produto>(); foreach (var item in query) { Produto p = item.Produto; p.Categoria = item.Categoria; p.Empresa = item.Empresa; List.Add(p); } return List.ToArray(); }
public static bool Edit(Categoria Categoria) { ArrecebaDLLDb db = new ArrecebaDLLDb(); HashSet<Categoria> Subcategorias = Categoria.SubCategorias; Categoria.SubCategorias = null; db.Entry(Categoria).State = EntityState.Modified; if (Subcategorias != null) { foreach (Categoria Subcategoria in Subcategorias) { if (Subcategoria.CategoriaId > 0) { if (!String.IsNullOrWhiteSpace(Subcategoria.Nome)) db.Entry(Subcategoria).State = EntityState.Modified; else { db.Categorias.Attach(Subcategoria); db.Categorias.Remove(Subcategoria); } } else { if (!String.IsNullOrWhiteSpace(Subcategoria.Nome)) db.Categorias.Add(Subcategoria); } } } return db.SaveChanges() > 0; }
public static Categoria[] ListSubcategoriasAndPreferences(int UserId) { ArrecebaDLLDb db = new ArrecebaDLLDb(); var query = from c in db.Categorias join sc in db.Categorias on c.CategoriaId equals sc.SuperCategoriaId into Subcategoria where Subcategoria.Count() == 0 orderby c.Nome select new { Categoria = c, UserId = (from ai in db.AndroidClients where ai.UserId == UserId where ai.Interesses.Contains(c) select ai.UserId).FirstOrDefault() }; Categoria[] Categorias = new Categoria[query.Count()]; int i = 0; foreach (var x in query) { Categorias[i] = x.Categoria; Categorias[i].Checked = x.UserId > 0; i++; } return Categorias; }
public static InteresseClientCount[] ListPreferences() { ArrecebaDLLDb db = new ArrecebaDLLDb(); DbCommand cmd = db.Database.Connection.CreateCommand(); cmd.CommandText = @"SELECT count(*) as Quantidade, Categoria_CategoriaId, cat.Nome FROM AndroidClientCategorias acc INNER JOIN Categorias cat ON cat.CategoriaId = acc.Categoria_CategoriaId GROUP BY Categoria_CategoriaId, cat.Nome"; cmd.Connection.Open(); DbDataReader reader = cmd.ExecuteReader(); List<InteresseClientCount> list = new List<InteresseClientCount>(); while (reader.Read()) { InteresseClientCount interesse = new InteresseClientCount(); interesse.Nome = reader["Nome"].ToString(); interesse.Quantidade = Convert.ToInt32(reader["Quantidade"]); list.Add(interesse); } reader.Close(); cmd.Connection.Close(); return list.ToArray(); }
public static Categoria[] List() { ArrecebaDLLDb db = new ArrecebaDLLDb(); var query = from c in db.Categorias join sc in db.Categorias on c.CategoriaId equals sc.SuperCategoriaId into Subcategoria from sc in Subcategoria.DefaultIfEmpty() where c.SuperCategoriaId == null orderby c.CategoriaId select new { Categoria = c, Subcategoria = sc }; List<Categoria> List = new List<Categoria>(); Categoria Categoria = null; int CategoriaId_Atual = 0; foreach (var item in query) { if (CategoriaId_Atual != item.Categoria.CategoriaId) { if (Categoria != null) { List.Add(Categoria); } CategoriaId_Atual = item.Categoria.CategoriaId; Categoria = new Categoria(); Categoria.CategoriaId = item.Categoria.CategoriaId; Categoria.Nome = item.Categoria.Nome; Categoria.SubCategorias = new HashSet<Categoria>(); } if (item.Subcategoria != null) { Categoria Subcategoria = new Categoria(); Subcategoria.CategoriaId = item.Subcategoria.CategoriaId; Subcategoria.Nome = item.Subcategoria.Nome; Categoria.SubCategorias.Add(Subcategoria); } } if (Categoria != null) { List.Add(Categoria); } return List.ToArray(); }
public static Categoria Find(int id) { ArrecebaDLLDb db = new ArrecebaDLLDb(); var query = from c in db.Categorias join sc in db.Categorias on c.CategoriaId equals sc.SuperCategoriaId into Subcategoria from sc in Subcategoria.DefaultIfEmpty() where c.CategoriaId == id select new { Categoria = c, Subcategoria = sc }; Categoria Categoria = new Categoria(); bool first = true; foreach (var item in query) { if (first) { Categoria.CategoriaId = item.Categoria.CategoriaId; Categoria.Nome = item.Categoria.Nome; Categoria.SubCategorias = new HashSet<Categoria>(); first = false; } if (item.Subcategoria != null) { Categoria Subcategoria = new Categoria(); Subcategoria.CategoriaId = item.Subcategoria.CategoriaId; Subcategoria.Nome = item.Subcategoria.Nome; Categoria.SubCategorias.Add(Subcategoria); } } return Categoria; }
public static Produto[] ListByUserPreferences(int UserId) { ArrecebaDLLDb db = new ArrecebaDLLDb(); var query = from p in db.Produtos join c in db.Categorias on p.CategoriaId equals c.CategoriaId join e in db.Empresas on p.EmpresaId equals e.EmpresaId where 1 == (from i in db.AndroidClients where i.UserId == UserId where i.Interesses.Contains(c) select 1).FirstOrDefault() select new { Produto = p, Categoria = c, Empresa = e }; List<Produto> List = new List<Produto>(); foreach (var item in query) { Produto p = item.Produto; if (p.Foto != null) p.Foto = "/Content/produto_importacao/" + p.Foto; else p.Foto = ""; p.Categoria = item.Categoria; p.Empresa = item.Empresa; List.Add(p); } return List.ToArray(); }