public async Task <ISaida> ExcluirPessoa(int idPessoa, int idUsuario) { this.NotificarSeMenorOuIgualA(idPessoa, 0, PessoaMensagem.Id_Pessoa_Invalido); this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var pessoa = await _pessoaRepositorio.ObterPorId(idPessoa); // Verifica se a pessoa existe this.NotificarSeNulo(pessoa, PessoaMensagem.Id_Pessoa_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a pessoa pertece ao usuário informado. this.NotificarSeDiferentes(pessoa.IdUsuario, idUsuario, PessoaMensagem.Pessoa_Excluir_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } _pessoaRepositorio.Deletar(pessoa); await _uow.Commit(); return(new Saida(true, new[] { PessoaMensagem.Pessoa_Excluida_Com_Sucesso }, new PessoaSaida(pessoa))); }