Exemplo n.º 1
0
        public ChamadaDTO GetChamadaByAula(AulaDTO aulaDTO)
        {
            var chamada = new ChamadaDTO();
            chamada.AnoTurma = aulaDTO.AnoTurma;
            chamada.Data = aulaDTO.DataAula;

            Aula aula = _aulaRepository.GetById(aulaDTO.Id);

            if (aula.ChamadaRealizada)
            {
                chamada.Alunos = aula.Presencas.
                    Select(x => new ChamadaAlunoDTO(x.Aluno.Id, x.Aluno.Nome, x.StatusPresenca))
                    .ToList();
            }
            else
            {
                var alunos = _alunoRepository.GetAllByTurmaId(aulaDTO.TurmaId);

                chamada.Alunos = alunos.Select(x => new ChamadaAlunoDTO(x.Id, x.Nome, "C"))
                   .ToList();
            }

            return chamada;
        }
Exemplo n.º 2
0
        public void RealizaChamada(ChamadaDTO registroPresenca)
        {
            var alunos = _alunoRepository.GetAllByTurmaId(registroPresenca.TurmaId);

            if (alunos == null || alunos.Any() == false)
                throw new Exception(String.Format(NENHUM_ALUNO_ENCOTRADO_PARA_TURMA, registroPresenca.AnoTurma));

            var aula = _aulaRepository.GetById(registroPresenca.AulaId);

            if (aula == null)
                throw new Exception(String.Format(NENHUMA_AULA_ENCOTRADA_NESTA_DATA, registroPresenca.Data));

            foreach (var item in registroPresenca.Alunos)
            {
                var aluno = alunos.First(x => x.Id == item.AlunoId);

                aluno.RegistraPresenca(aula, item.Status);

                _alunoRepository.Update(aluno);
            }

            aula.ChamadaRealizada = true;

            _aulaRepository.Update(aula);
        }