private async Task CadastarCategorias(int idLivro, int[] categoriasID) { foreach (var item in categoriasID) { LivroCategoria livroCategoria = new LivroCategoria() { LivroID = idLivro, CategoriaID = item }; await _livroCategoriaServico.AddAsync(livroCategoria); } }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } LivroCategoria categoria = (LivroCategoria)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM livro_cat JOIN cat_livro ON cat_livro.id_cat_livro = livro_cat.id_cat_livro "); sql.Append(" WHERE 1 = 1 "); if (categoria.ID != 0) { sql.Append("AND livro_cat.id_livro = ?1 "); } sql.Append("ORDER BY cat_livro.nome_cat_livro"); pst.CommandText = sql.ToString(); parameters = new MySqlParameter[] { new MySqlParameter("?1", categoria.ID) }; pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os produtores encontrados List <EntidadeDominio> categorias = new List <EntidadeDominio>(); while (reader.Read()) { categoria = new LivroCategoria(); categoria.ID = Convert.ToInt32(reader["id_livro"]); categoria.Categoria.ID = Convert.ToInt32(reader["id_cat_livro"]); categoria.Categoria.Nome = reader["nome_cat_livro"].ToString(); categoria.Categoria.Descricao = reader["descricao_cat_livro"].ToString(); categorias.Add(categoria); } connection.Close(); return(categorias); }
private async Task VerificarAlteracoesCategorias(int livroID, int[] categoriasID) { List <LivroCategoria> livrosCategorias = await _livroCategoriaServico.FindAllAsync(x => x.LivroID == livroID); foreach (var item in categoriasID) { if (!(livrosCategorias.Exists(x => x.CategoriaID == item))) { LivroCategoria novo = new LivroCategoria() { LivroID = livroID, CategoriaID = item }; await _livroCategoriaServico.AddAsync(novo); } else { livrosCategorias.RemoveAll(x => x.CategoriaID == item); } } foreach (var item in livrosCategorias) { await _livroCategoriaServico.RemoveAsync(item); } }