Esempio n. 1
0
        public void Excluir(Campo campo)
        {
            // Remover dependências do campo.
            using (repositorio.ObterTransacao())
            {
                try
                {
                    var respostas = new BMCampoResposta().ObterRespostasPorCampo(campo.ID);

                    var bmCampoResposta = new BMCampoResposta();

                    foreach (var resposta in respostas)
                    {
                        // Remover Alternativas Respostas
                        var bmAltRes = new BMAlternativaResposta();
                        var alternativasRespostas = bmAltRes.ObterPorCampoRespostaId(resposta.ID);

                        foreach (var alternativaResposta in alternativasRespostas)
                        {
                            bmAltRes.Excluir(alternativaResposta);
                        }

                        // Remover Resposta
                        bmCampoResposta.Excluir(resposta);
                    }

                    // Remover Alternativas
                    var bmAlt        = new BMAlternativa();
                    var alternativas = bmAlt.ObterPorCampoId(campo.ID);

                    foreach (var alternativa in alternativas)
                    {
                        bmAlt.Excluir(alternativa);
                    }

                    // Finalmente, excluir o campo.
                    repositorio.Excluir(campo);

                    repositorio.Commit();
                }
                catch
                {
                    repositorio.RollbackTransaction();
                    throw;
                }
            }
        }