コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
ファイル: TurmaDAO.cs プロジェクト: filipi/OpenSARC
        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);
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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);
                    }
                }
            }
        }