public ServicoAula(IRepositorioAula repositorioAula,
                    IServicoEOL servicoEOL,
                    IRepositorioTipoCalendario repositorioTipoCalendario,
                    IServicoDiaLetivo servicoDiaLetivo,
                    IConsultasGrade consultasGrade,
                    IConsultasPeriodoEscolar consultasPeriodoEscolar,
                    IConsultasFrequencia consultasFrequencia,
                    IConsultasPlanoAula consultasPlanoAula,
                    IServicoLog servicoLog,
                    IServicoNotificacao servicoNotificacao,
                    IComandosWorkflowAprovacao comandosWorkflowAprovacao,
                    IComandosPlanoAula comandosPlanoAula,
                    IComandosNotificacaoAula comandosNotificacaoAula,
                    IServicoFrequencia servicoFrequencia,
                    IConfiguration configuration,
                    IRepositorioAtividadeAvaliativa repositorioAtividadeAvaliativa,
                    IRepositorioAtribuicaoCJ repositorioAtribuicaoCJ,
                    IRepositorioTurma repositorioTurma,
                    IServicoWorkflowAprovacao servicoWorkflowAprovacao,
                    IServicoUsuario servicoUsuario,
                    IUnitOfWork unitOfWork)
 {
     this.repositorioAula                = repositorioAula ?? throw new System.ArgumentNullException(nameof(repositorioAula));
     this.servicoEOL                     = servicoEOL ?? throw new System.ArgumentNullException(nameof(servicoEOL));
     this.repositorioTipoCalendario      = repositorioTipoCalendario ?? throw new System.ArgumentNullException(nameof(repositorioTipoCalendario));
     this.servicoDiaLetivo               = servicoDiaLetivo ?? throw new System.ArgumentNullException(nameof(servicoDiaLetivo));
     this.consultasGrade                 = consultasGrade ?? throw new System.ArgumentNullException(nameof(consultasGrade));
     this.consultasPeriodoEscolar        = consultasPeriodoEscolar ?? throw new ArgumentNullException(nameof(consultasPeriodoEscolar));
     this.consultasFrequencia            = consultasFrequencia ?? throw new ArgumentNullException(nameof(consultasFrequencia));
     this.consultasPlanoAula             = consultasPlanoAula ?? throw new ArgumentNullException(nameof(consultasPlanoAula));
     this.servicoLog                     = servicoLog ?? throw new ArgumentNullException(nameof(servicoLog));
     this.comandosWorkflowAprovacao      = comandosWorkflowAprovacao ?? throw new ArgumentNullException(nameof(comandosWorkflowAprovacao));
     this.configuration                  = configuration ?? throw new ArgumentNullException(nameof(configuration));
     this.servicoNotificacao             = servicoNotificacao ?? throw new ArgumentNullException(nameof(servicoNotificacao));
     this.comandosPlanoAula              = comandosPlanoAula ?? throw new ArgumentNullException(nameof(comandosPlanoAula));
     this.servicoFrequencia              = servicoFrequencia ?? throw new ArgumentNullException(nameof(servicoFrequencia));
     this.repositorioAtividadeAvaliativa = repositorioAtividadeAvaliativa ?? throw new ArgumentNullException(nameof(repositorioAtividadeAvaliativa));
     this.repositorioAtribuicaoCJ        = repositorioAtribuicaoCJ ?? throw new ArgumentNullException(nameof(repositorioAtribuicaoCJ));
     this.repositorioTurma               = repositorioTurma ?? throw new ArgumentNullException(nameof(repositorioTurma));
     this.servicoWorkflowAprovacao       = servicoWorkflowAprovacao ?? throw new ArgumentNullException(nameof(servicoWorkflowAprovacao));
     this.servicoUsuario                 = servicoUsuario ?? throw new ArgumentNullException(nameof(servicoUsuario));
     this.comandosNotificacaoAula        = comandosNotificacaoAula ?? throw new ArgumentNullException(nameof(comandosNotificacaoAula));
     this.unitOfWork                     = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
 }
        public async Task <IActionResult> Post(PlanoAulaDto planoAulaDto, [FromServices] IComandosPlanoAula comandos)
        {
            await comandos.Salvar(planoAulaDto);

            return(Ok());
        }
        public async Task <IActionResult> Migrar(MigrarPlanoAulaDto migrarPlanoAulaDto, [FromServices] IComandosPlanoAula comandosPlanoAula)
        {
            await comandosPlanoAula.Migrar(migrarPlanoAulaDto);

            return(Ok());
        }