public IList<Turma> GetTurmas(Guid calendarioId)
{
DbCommand cmdSelect = baseDados.GetSqlStringCommand(QueryMap.Default.Turmas);
Entities.Turma turma = null;
try
{
IList<Entities.Turma> listaAux = new List<Entities.Turma>();
using (IDataReader leitor = baseDados.ExecuteReader(cmdSelect))
{
CalendariosDAO caDAO = new CalendariosDAO();
DisciplinasDAO disciDAO = new DisciplinasDAO();
ProfessorDAO profDAO = new ProfessorDAO();
CursosDAO curDAO = new CursosDAO();
//Calendario - pega o corrente, neste caso, foi passado por parâmetro,
//no futuro, será variável de sessão.
Calendario cal = caDAO.GetCalendario(calendarioId);
while (leitor.Read())
{
Curso cur = null;
Disciplina discip = null;
Professor prof = null;
string numero = leitor.GetString(leitor.GetOrdinal("TURMA"));
int num = Convert.ToInt32(numero.Substring(0, 3));
string datahora = leitor.GetValue(leitor.GetOrdinal("HORARIO")).ToString();
datahora = datahora.Replace("EF", "EX");
string codigoCurso;
string disciplinaCodigo;
string matriculaProfessor;
//Disciplina - Turmas.CODIGO
try
{
disciplinaCodigo = leitor.GetValue(leitor.GetOrdinal("CODIGO")).ToString();
discip = disciDAO.GetDisciplina(disciplinaCodigo, calendarioId);
}
catch (Exception )
{
CriaLOG(leitor);
continue;
}
//Matricula do professor - Turmas.PROFESSOR
try
{
matriculaProfessor = leitor.GetValue(leitor.GetOrdinal("PROFESSOR1")).ToString();
prof = profDAO.GetProfessorByMatricula(matriculaProfessor);
}
catch (Exception )
{
CriaLOG(leitor);
continue;
}
//Código do curso - Turmas.CURSO
try
{
codigoCurso = leitor.GetValue(leitor.GetOrdinal("CURSO")).ToString();
cur = curDAO.GetCurso(codigoCurso);
}
catch (Exception )
{
CriaLOG(leitor);
continue;
}
turma = Entities.Turma.NewTurma(num, cal, discip, datahora, prof, cur);
listaAux.Add(turma);
}
}
return listaAux;
}
catch (Exception ex)
{
throw new DataAccessException("Erro ao ler dados.", ex);
}
}