public void RealizaChamada(ChamadaDTO registroPresenca) { var alunos = _alunoRepository.GetAllByTurmaId(registroPresenca.TurmaId); if (alunos == null || alunos.Any() == false) { throw new AlunoNaoEncontrado(String.Format(NENHUM_ALUNO_ENCOTRADO_PARA_TURMA, registroPresenca.AnoTurma)); } var aula = _aulaRepository.GetById(registroPresenca.AulaId); if (aula == null) { throw new AulaNaoEncontrada(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); _unitOfWork.Commit(); }