예제 #1
0
        private async Task ValidarMigracao(MigrarPlanoAulaDto migrarPlanoAulaDto, string codigoRf, bool ehProfessorCj, string ueId)
        {
            var turmasAtribuidasAoProfessor = consultasProfessor.Listar(codigoRf);
            var idsTurmasSelecionadas       = migrarPlanoAulaDto.IdsPlanoTurmasDestino.Select(x => x.TurmaId).ToList();

            await ValidaTurmasProfessor(ehProfessorCj, ueId,
                                        migrarPlanoAulaDto.DisciplinaId,
                                        codigoRf,
                                        turmasAtribuidasAoProfessor,
                                        idsTurmasSelecionadas);

            ValidaTurmasAno(ehProfessorCj, migrarPlanoAulaDto.MigrarObjetivos,
                            turmasAtribuidasAoProfessor, idsTurmasSelecionadas);
        }
예제 #2
0
        public async Task Migrar(MigrarPlanoAulaDto migrarPlanoAulaDto)
        {
            var usuario = await servicoUsuario.ObterUsuarioLogado();

            var planoAulaDto = repositorio.ObterPorId(migrarPlanoAulaDto.PlanoAulaId);
            var aula         = repositorioAula.ObterPorId(planoAulaDto.AulaId);

            await ValidarMigracao(migrarPlanoAulaDto, usuario.CodigoRf, usuario.EhProfessorCj(), aula.UeId);

            var objetivosPlanoAulaDto = await repositorioObjetivosAula.ObterObjetivosPlanoAula(migrarPlanoAulaDto.PlanoAulaId);

            unitOfWork.IniciarTransacao();

            foreach (var planoTurma in migrarPlanoAulaDto.IdsPlanoTurmasDestino)
            {
                AulaConsultaDto aulaConsultaDto = await
                                                  repositorioAula.ObterAulaDataTurmaDisciplina(
                    planoTurma.Data,
                    planoTurma.TurmaId,
                    migrarPlanoAulaDto.DisciplinaId
                    );

                if (aulaConsultaDto == null)
                {
                    throw new NegocioException($"Não há aula cadastrada para a turma {planoTurma.TurmaId} para a data {planoTurma.Data.ToString("dd/MM/yyyy")} nesta disciplina!");
                }

                var planoCopia = new PlanoAulaDto()
                {
                    Id                          = planoTurma.Sobreescrever ? migrarPlanoAulaDto.PlanoAulaId : 0,
                    AulaId                      = aulaConsultaDto.Id,
                    Descricao                   = planoAulaDto.Descricao,
                    DesenvolvimentoAula         = planoAulaDto.DesenvolvimentoAula,
                    LicaoCasa                   = migrarPlanoAulaDto.MigrarLicaoCasa ? planoAulaDto.LicaoCasa : string.Empty,
                    ObjetivosAprendizagemJurema = !usuario.EhProfessorCj() ||
                                                  migrarPlanoAulaDto.MigrarObjetivos ?
                                                  objetivosPlanoAulaDto.Select(o => o.ObjetivoAprendizagemPlano.ObjetivoAprendizagemJuremaId).ToList() : null,
                    RecuperacaoAula = migrarPlanoAulaDto.MigrarRecuperacaoAula ?
                                      planoAulaDto.RecuperacaoAula : string.Empty
                };

                await Salvar(planoCopia, false);
            }

            unitOfWork.PersistirTransacao();
        }
예제 #3
0
        public async Task <IActionResult> Migrar(MigrarPlanoAulaDto migrarPlanoAulaDto, [FromServices] IMigrarPlanoAulaUseCase migrarPlanoAula)
        {
            await migrarPlanoAula.Executar(migrarPlanoAulaDto);

            return(Ok());
        }
예제 #4
0
        public async Task <bool> Executar(MigrarPlanoAulaDto param)
        {
            var usuario = await mediator.Send(new ObterUsuarioLogadoQuery());

            return(await mediator.Send(new MigrarPlanoAulaCommand(param, usuario)));
        }
 public MigrarPlanoAulaCommand(MigrarPlanoAulaDto planoAulaMigrar, Usuario usuario)
 {
     PlanoAulaMigrar = planoAulaMigrar;
     Usuario         = usuario;
 }
        public async Task <IActionResult> Migrar(MigrarPlanoAulaDto migrarPlanoAulaDto, [FromServices] IComandosPlanoAula comandosPlanoAula)
        {
            await comandosPlanoAula.Migrar(migrarPlanoAulaDto);

            return(Ok());
        }