Пример #1
0
        public async Task <IHttpActionResult> Delete(int id)
        {
            try
            {
                Pessoa pessoa = await Task.Run(() => iPessoaDao.ObterPorChave(id, StrConexao));

                var telefones = await Task.Run(() => iTelefoneDao.ListarTelefone(new { Pessoa = pessoa.PessoaCodigo }, StrConexao));

                await Task.Run(() =>
                {
                    foreach (var item in telefones)
                    {
                        iTelefoneDao.Excluir(item.TelefoneCodigo, out _mensagem, StrConexao);
                        if (!string.IsNullOrEmpty(_mensagem))
                        {
                            throw new Exception(_mensagem);
                        }
                    }
                });

                Rg rg = await Task.Run(() => iRgDao.ObterPorChave(pessoa.PessoaCodigo, StrConexao));

                if (rg != null)
                {
                    await Task.Run(() => iRgDao.Excluir(pessoa.PessoaCodigo, out _mensagem, StrConexao));

                    if (!string.IsNullOrEmpty(_mensagem))
                    {
                        throw new Exception(_mensagem);
                    }
                }

                await Task.Run(() => iPessoaDao.Excluir(pessoa.PessoaCodigo, out _mensagem, StrConexao));

                if (!string.IsNullOrEmpty(_mensagem))
                {
                    throw new Exception(_mensagem);
                }

                return(Ok(new { Mensagem = "Registro excluído com sucesso!" }));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }