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; }
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); }