/// <summary> /// Retorna a Disciplina relativo ao Id especificado. /// throws BusinessData.BusinessLogic.DataAccess.DataAccessExceptiom /// </summary> /// <param name="cod"></param> /// <param name="calendarioId"> /// Id do calendário atual, passado para ser possível retornar um objeto completo /// </param> /// <returns></returns> public Disciplina GetDisciplina(string cod, Guid calendarioId) { DbCommand cmd = baseDados.GetStoredProcCommand("DisciplinaSelectByCod"); baseDados.AddInParameter(cmd, "@DisciplinaCod", DbType.String, cod); Entities.Disciplina aux = null; try { using (IDataReader leitor = baseDados.ExecuteReader(cmd)) { leitor.Read(); CalendariosDAO calendariosDAO = new CalendariosDAO(); CategoriaDisciplinaDAO catdiscipDAO = new CategoriaDisciplinaDAO(); Entities.Calendario calendario = calendariosDAO.GetCalendario(calendarioId); Entities.CategoriaDisciplina categoria = catdiscipDAO.GetCategoriaDisciplina(leitor.GetGuid(leitor.GetOrdinal("Categoria"))); aux = Entities.Disciplina.GetDisciplina(leitor.GetString(leitor.GetOrdinal("DisciplinaCod")), leitor.GetInt32(leitor.GetOrdinal("Cred")), leitor.GetString(leitor.GetOrdinal("Nome")), leitor.GetBoolean(leitor.GetOrdinal("G2")), calendario, categoria ); } } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } return(aux); }
public void InsereCategoriaDisciplina(Entities.CategoriaDisciplina categoriaDisciplina) { DbCommand cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaInsere"); baseDados.AddInParameter(cmd, "@CategoriaDisciplinaId", DbType.Guid, categoriaDisciplina.Id); baseDados.AddInParameter(cmd, "@Descricao", DbType.String, categoriaDisciplina.Descricao); try { baseDados.ExecuteNonQuery(cmd); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } foreach (KeyValuePair <CategoriaRecurso, double> kvp in categoriaDisciplina.Prioridades) { cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaInCatRecursoPrioridadeInsere"); baseDados.AddInParameter(cmd, "@CategoriaDisciplinaId", DbType.Guid, categoriaDisciplina.Id); baseDados.AddInParameter(cmd, "@CategoriaRecursoId", DbType.Guid, kvp.Key.Id); baseDados.AddInParameter(cmd, "@Prioridade", DbType.Double, kvp.Value); try { baseDados.ExecuteNonQuery(cmd); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } } }
public List <Turma> GetTurmas(Calendario cal, Professor professor) { try { DbCommand cmd = baseDados.GetStoredProcCommand("TurmasSelectByProfessor"); baseDados.AddInParameter(cmd, "@CalendarioId", DbType.Guid, cal.Id); baseDados.AddInParameter(cmd, "@ProfessorId", DbType.Guid, professor.Id); CursosDAO cursoDAO = new CursosDAO(); List <Turma> resultado = new List <Turma>(); Turma aux = null; Disciplina disc = null; Curso curso = null; using (IDataReader leitor = baseDados.ExecuteReader(cmd)) { CategoriaDisciplinaDAO catdiscipDAO = new CategoriaDisciplinaDAO(); while (leitor.Read()) { curso = cursoDAO.GetCurso(leitor.GetString(leitor.GetOrdinal("Curso"))); Entities.CategoriaDisciplina categoria = catdiscipDAO.GetCategoriaDisciplina(leitor.GetGuid(leitor.GetOrdinal("categoriaDisciplina"))); disc = Disciplina.GetDisciplina(leitor.GetString(leitor.GetOrdinal("DisciplinaCod")), leitor.GetInt32(leitor.GetOrdinal("Cred")), leitor.GetString(leitor.GetOrdinal("NomeDisciplina")), leitor.GetBoolean(leitor.GetOrdinal("G2")), cal, categoria); //string sala = leitor.GetString(leitor.GetOrdinal("Sala")); string sala = ""; if (!leitor.IsDBNull(leitor.GetOrdinal("Sala"))) { sala = leitor.GetString(leitor.GetOrdinal("Sala")); } aux = Turma.GetTurma(leitor.GetGuid(leitor.GetOrdinal("TurmaId")), leitor.GetInt32(leitor.GetOrdinal("Numero")), cal, disc, leitor.GetString(leitor.GetOrdinal("DataHora")), professor, curso, sala); resultado.Add(aux); } } return(resultado); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } }
public Entities.CategoriaDisciplina GetCategoriaDisciplina(Guid id) { DbCommand cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaSelectById"); baseDados.AddInParameter(cmd, "@Id", DbType.Guid, id); Entities.CategoriaDisciplina aux = null; try { using (IDataReader leitor = baseDados.ExecuteReader(cmd)) { leitor.Read(); CategoriaRecursoDAO crDao = new CategoriaRecursoDAO(); Guid ideh = leitor.GetGuid(leitor.GetOrdinal("DisciplinaId")); string nome = leitor.GetString(leitor.GetOrdinal("Nome")); Dictionary <CategoriaRecurso, double> prioridades = new Dictionary <CategoriaRecurso, double>(); DbCommand cmd2 = baseDados.GetStoredProcCommand("CategoriasDisciplinaSelectPrioridadesById"); baseDados.AddInParameter(cmd2, "@Id", DbType.Guid, ideh); try { using (IDataReader leitor2 = baseDados.ExecuteReader(cmd2)) { while (leitor2.Read()) { CategoriaRecurso cat = crDao.GetCategoriaRecurso(leitor2.GetGuid(leitor2.GetOrdinal("CatRecursoId"))); double value = leitor2.GetDouble(leitor2.GetOrdinal("prioridade")); prioridades.Add(cat, value); } } } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } aux = Entities.CategoriaDisciplina.GetCategoriaDisciplina(id, nome, prioridades); } } catch (Exception ex) { throw new DataAccessException("Erro ao ler dados.", ex); } return(aux); }
public Disciplina GetDisciplina(string cod, Calendario cal, List <BusinessData.Entities.CategoriaDisciplina> categoriasDeDisciplina) { DbCommand cmd = baseDados.GetStoredProcCommand("DisciplinaSelectByCod"); baseDados.AddInParameter(cmd, "@DisciplinaCod", DbType.String, cod); Entities.Disciplina aux = null; Entities.CategoriaDisciplina categoria = null; try { using (IDataReader leitor = baseDados.ExecuteReader(cmd)) { leitor.Read(); Guid categId = leitor.GetGuid(leitor.GetOrdinal("Categoria")); foreach (CategoriaDisciplina categDisc in categoriasDeDisciplina) { if (categDisc.Id.Equals(categId)) { categoria = categDisc; } } if (categoria == null) { throw new Exception("Categoria de disciplina não encontrada"); } aux = Entities.Disciplina.GetDisciplina(leitor.GetString(leitor.GetOrdinal("DisciplinaCod")), leitor.GetInt32(leitor.GetOrdinal("Cred")), leitor.GetString(leitor.GetOrdinal("Nome")), leitor.GetBoolean(leitor.GetOrdinal("G2")), cal, categoria ); } } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } return(aux); }
/// <summary> /// Retorna todas as Disciplinas ligadas à um calendário /// throws BusinessData.BusinessLogic.DataAccess.DataAccessExceptiom /// </summary> /// <returns>Lista de Disciplinas</returns> public List <Disciplina> GetDisciplinas(Calendario calendario) { DbCommand cmd = baseDados.GetStoredProcCommand("DisciplinaSelect"); baseDados.AddInParameter(cmd, "@CalendarioId", DbType.Guid, calendario.Id); CategoriaDisciplinaDAO catdiscipDAO = new CategoriaDisciplinaDAO(); Entities.Disciplina aux; List <Entities.Disciplina> listaAux = new List <Entities.Disciplina>(); try { using (IDataReader leitor = baseDados.ExecuteReader(cmd)) { CalendariosDAO calendariosDAO = new CalendariosDAO(); while (leitor.Read()) { Entities.CategoriaDisciplina categoria = catdiscipDAO.GetCategoriaDisciplina(leitor.GetGuid(leitor.GetOrdinal("Categoria"))); aux = Entities.Disciplina.GetDisciplina(leitor.GetString(leitor.GetOrdinal("DisciplinaCod")), leitor.GetInt32(leitor.GetOrdinal("Cred")), leitor.GetString(leitor.GetOrdinal("Nome")), leitor.GetBoolean(leitor.GetOrdinal("G2")), calendario, categoria ); listaAux.Add(aux); } } } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } return(listaAux); }
/// <summary> /// Faz a atualização de uma CategoriaDisciplina /// </summary> /// <param name="categoriaDisciplina"></param> public void UpdateCategoriaDisciplina(Entities.CategoriaDisciplina categoriaDisciplina) { //Primeiro atualiza o banco CategoriaDisciplina, que contém apenas ID e DESCRIÇÃO DbCommand cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaUpdate"); baseDados.AddInParameter(cmd, "@CategoriaDisciplinaId", DbType.Guid, categoriaDisciplina.Id); baseDados.AddInParameter(cmd, "@Descricao", DbType.String, categoriaDisciplina.Descricao); try { baseDados.ExecuteNonQuery(cmd); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } //Instancia uma CategoriaDisciplina com os dados atuais, que virão a ser modificados, para verificar //se não foram adicionadas "CategoriaRecurso"s ao sistema que não existiam antes Entities.CategoriaDisciplina catOLD = this.GetCategoriaDisciplina(categoriaDisciplina.Id); bool existia = false; //Para cada CategoriaRecurso atual, verifica se ela já existia no antigo foreach (KeyValuePair <CategoriaRecurso, double> kvp in categoriaDisciplina.Prioridades) { foreach (KeyValuePair <CategoriaRecurso, double> kvpOLD in catOLD.Prioridades) { existia = false; //Se existia já no antigo, apenas seta um flag para fazer o update //(setar flag aqui, pois está fazendo verificação um a um) if (kvp.Key.Equals(kvpOLD.Key)) { existia = true; break; } } //Se jah existia, Update if (existia) { cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaInCatRecursoPrioridadeUpdate"); baseDados.AddInParameter(cmd, "@CategoriaDisciplinaId", DbType.Guid, categoriaDisciplina.Id); baseDados.AddInParameter(cmd, "@CategoriaRecursoId", DbType.Guid, kvp.Key.Id); baseDados.AddInParameter(cmd, "@Prioridade", DbType.Double, kvp.Value); try { baseDados.ExecuteNonQuery(cmd); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } } //Caso contrário, Insert else { cmd = baseDados.GetStoredProcCommand("CategoriasDisciplinaInCatRecursoPrioridadeInsere"); baseDados.AddInParameter(cmd, "@CategoriaDisciplinaId", DbType.Guid, categoriaDisciplina.Id); baseDados.AddInParameter(cmd, "@CategoriaRecursoId", DbType.Guid, kvp.Key.Id); baseDados.AddInParameter(cmd, "@Prioridade", DbType.Double, kvp.Value); try { baseDados.ExecuteNonQuery(cmd); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } } } }