コード例 #1
0
 private CompensacaoAusenciaListagemDto MapearParaDto(CompensacaoAusencia compensacaoAusencia)
 => compensacaoAusencia == null ? null :
 new CompensacaoAusenciaListagemDto()
 {
     Id            = compensacaoAusencia.Id,
     Bimestre      = compensacaoAusencia.Bimestre,
     AtividadeNome = compensacaoAusencia.Nome,
     Alunos        = new List <string>()
 };
コード例 #2
0
        private CompensacaoAusencia MapearEntidade(long id, CompensacaoAusenciaDto compensacaoDto)
        {
            CompensacaoAusencia compensacaoBanco = new CompensacaoAusencia();

            if (id > 0)
            {
                compensacaoBanco = repositorioCompensacaoAusencia.ObterPorId(id);
            }

            return(MapearEntidade(compensacaoDto, compensacaoBanco));
        }
コード例 #3
0
        private CompensacaoAusencia MapearEntidade(long id, CompensacaoAusenciaDto compensacaoDto)
        {
            CompensacaoAusencia compensacao = new CompensacaoAusencia();

            if (id > 0)
            {
                compensacao = repositorioCompensacaoAusencia.ObterPorId(id);
            }

            compensacao.DisciplinaId = compensacaoDto.DisciplinaId;
            compensacao.Bimestre     = compensacaoDto.Bimestre;
            compensacao.Nome         = compensacaoDto.Atividade;
            compensacao.Descricao    = compensacaoDto.Descricao;

            return(compensacao);
        }
コード例 #4
0
        private CompensacaoAusenciaCompletoDto MapearParaDtoCompleto(CompensacaoAusencia compensacaoAusencia)
        => compensacaoAusencia == null ? null :
        new CompensacaoAusenciaCompletoDto()
        {
            Id                  = compensacaoAusencia.Id,
            DisciplinaId        = compensacaoAusencia.DisciplinaId,
            Bimestre            = compensacaoAusencia.Bimestre,
            Atividade           = compensacaoAusencia.Nome,
            Descricao           = compensacaoAusencia.Descricao,
            DisciplinasRegencia = new List <DisciplinaNomeDto>(),
            Alunos              = new List <CompensacaoAusenciaAlunoCompletoDto>(),

            CriadoPor   = compensacaoAusencia.CriadoPor,
            CriadoRf    = compensacaoAusencia.CriadoRF,
            CriadoEm    = compensacaoAusencia.CriadoEm,
            AlteradoPor = compensacaoAusencia.AlteradoPor,
            AlteradoRf  = compensacaoAusencia.AlteradoRF,
            AlteradoEm  = compensacaoAusencia.AlteradoEm,
            Migrado     = compensacaoAusencia.Migrado
        };
コード例 #5
0
        public async Task Salvar(long id, CompensacaoAusenciaDto compensacaoDto)
        {
            // Busca dados da turma
            var turma = await BuscaTurma(compensacaoDto.TurmaId);

            // Consiste periodo
            var periodo = await BuscaPeriodo(turma, compensacaoDto.Bimestre);

            var usuario = await servicoUsuario.ObterUsuarioLogado();

            await ValidaProfessorPodePersistirTurma(compensacaoDto.TurmaId, usuario.CodigoRf, periodo.PeriodoFim);

            // Valida mesma compensação no ano
            var compensacaoExistente = await repositorioCompensacaoAusencia.ObterPorAnoTurmaENome(turma.AnoLetivo, turma.Id, compensacaoDto.Atividade, id);

            if (compensacaoExistente != null)
            {
                throw new NegocioException($"Já existe essa compensação cadastrada para turma no ano letivo.");
            }

            CompensacaoAusencia compensacaoBanco = new CompensacaoAusencia();

            if (id > 0)
            {
                compensacaoBanco = repositorioCompensacaoAusencia.ObterPorId(id);
            }

            // Carrega dasdos da disciplina no EOL
            await ConsisteDisciplina(long.Parse(compensacaoDto.DisciplinaId), compensacaoDto.DisciplinasRegenciaIds, compensacaoBanco.Migrado);

            // Persiste os dados
            var compensacao = MapearEntidade(compensacaoDto, compensacaoBanco);

            compensacao.TurmaId   = turma.Id;
            compensacao.AnoLetivo = turma.AnoLetivo;

            List <string> codigosAlunosCompensacao = new List <string>();

            unitOfWork.IniciarTransacao();
            try
            {
                await repositorioCompensacaoAusencia.SalvarAsync(compensacao);
                await GravarDisciplinasRegencia(id > 0, compensacao.Id, compensacaoDto.DisciplinasRegenciaIds);

                codigosAlunosCompensacao = await GravarCompensacaoAlunos(id > 0, compensacao.Id, compensacaoDto.TurmaId, compensacaoDto.DisciplinaId, compensacaoDto.Alunos, periodo);

                unitOfWork.PersistirTransacao();
            }
            catch (Exception)
            {
                unitOfWork.Rollback();
                throw;
            }

            if (codigosAlunosCompensacao.Any())
            {
                await mediator.Send(new IncluirFilaCalcularFrequenciaPorTurmaCommand(codigosAlunosCompensacao, periodo.PeriodoFim, compensacaoDto.TurmaId, compensacaoDto.DisciplinaId, periodo.Bimestre));
            }

            Cliente.Executar <IServicoNotificacaoFrequencia>(c => c.NotificarCompensacaoAusencia(compensacao.Id));
        }
コード例 #6
0
        private CompensacaoAusencia MapearEntidade(CompensacaoAusenciaDto compensacaoDto, CompensacaoAusencia compensacao)
        {
            compensacao.DisciplinaId = compensacaoDto.DisciplinaId;
            compensacao.Bimestre     = compensacaoDto.Bimestre;
            compensacao.Nome         = compensacaoDto.Atividade;
            compensacao.Descricao    = compensacaoDto.Descricao;

            return(compensacao);
        }