public async Task <bool> Handle(ExcluirPlanejamentoAnualPorTurmaIdEComponenteCurricularIdCommand comando, CancellationToken cancellationToken)
        {
            var planejamentoAnual = await repositorioPlanejamentoAnual.ObterIdPorTurmaEComponenteCurricular(comando.TurmaId, comando.ComponenteCurricularId);

            if (planejamentoAnual == 0)
            {
                return(true);
            }

            var planejamentoAnualPeriodosEscolares = await repositorioPlanejamentoAnualPeriodoEscolar.ObterPorPlanejamentoAnualId(planejamentoAnual);


            foreach (var pape in planejamentoAnualPeriodosEscolares)
            {
                var planejamentoAnualComponente = await repositorioPlanejamentoAnualComponente.ObterPorPlanejamentoAnualPeriodoEscolarId(comando.ComponenteCurricularId, pape.Id);

                var planejamentoAnualObjetivosAprendizagem = await repositorioPlanejamentoAnualObjetivosAprendizagem.ObterPorPlanejamentoAnualComponenteId(planejamentoAnualComponente.Id);

                foreach (var paoa in planejamentoAnualObjetivosAprendizagem)
                {
                    await repositorioPlanejamentoAnualObjetivosAprendizagem.RemoverLogicamenteAsync(paoa.Id);
                }

                await repositorioPlanejamentoAnualComponente.RemoverLogicamenteAsync(planejamentoAnualComponente.Id);

                await repositorioPlanejamentoAnualPeriodoEscolar.RemoverLogicamenteAsync(pape.Id);
            }

            await repositorioPlanejamentoAnual.RemoverLogicamenteAsync(planejamentoAnual);

            return(true);
        }
 public async Task <long> Handle(ObterPlanejamentoAnualPorTurmaComponenteQuery request, CancellationToken cancellationToken)
 => await repositorioPlanejamentoAnual.ObterIdPorTurmaEComponenteCurricular(request.TurmaId, request.ComponenteCurricularId);