Exemple #1
0
        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);
            }
        }