public async Task <IActionResult> Details(int?id) { if (id == null) { return(RedirectToAction(nameof(Error), new { message = "Categoria Inválida!" })); } var categoria = await _categoriaServico.FindFirstAsync(x => x.ID == id); if (categoria == null) { return(RedirectToAction(nameof(Error), new { message = "Categoria não encontrada!" })); } var livrosCategorias = await _livroCategoriaServico.FindAllAsync(x => x.CategoriaID == categoria.ID, "Livro", "Livro.Autor"); return(View(new CategoriaViewModel { Categoria = categoria, LivrosCategorias = livrosCategorias })); }
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); } }