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