public virtual void ExcluirCategoria(Categoria Categoria) { try { _CategoriaRepositorio.Deletar(c => c == Categoria); _CategoriaRepositorio.Commit(); } catch (Exception ex) { throw ex; } }
public async Task <ISaida> ExcluirCategoria(int idCategoria, int idUsuario) { this.NotificarSeMenorOuIgualA(idCategoria, 0, CategoriaMensagem.Id_Categoria_Invalido); this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var categoria = await _categoriaRepositorio.ObterPorId(idCategoria); // Verifica se a categoria existe this.NotificarSeNulo(categoria, CategoriaMensagem.Id_Categoria_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a categoria pertece ao usuário informado. this.NotificarSeDiferentes(categoria.IdUsuario, idUsuario, CategoriaMensagem.Categoria_Excluir_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verificar se a categoria tem filhas. Se for pai, obrigar a exclusão de todas as filhas primeiro this.NotificarSeVerdadeiro(categoria.Pai, CategoriaMensagem.Categoria_Pai_Nao_Pode_Ser_Excluida); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } _categoriaRepositorio.Deletar(categoria); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { CategoriaMensagem.Categoria_Excluida_Com_Sucesso }, new CategoriaSaida(categoria))); }