Пример #1
0
        /// <summary>
        /// Insere um Desempenho na tabela Desempenho
        /// Precisando Apenas do ID do Usuario e o ID do Materia
        /// </summary>
        /// <param name="D"> parametro do tipo Desempenho | sem id </param>
        public void Inserir(Desempenho D)
        {
            SqlCommand comm       = new SqlCommand(@"Select Count(*) 
                                                From Materia m inner join Conteudo c on m.ID_Materia = c.ID_Materia
                                                inner join Exercicio e on e.ID_Conteudo = c.ID_Conteudo Where m.ID_Materia = " + D.Materia.ID, Banco.Abrir());
            decimal    quantidade = Convert.ToDecimal(comm.ExecuteScalar()) * 10;
            decimal    notas      = 0;

            comm.CommandText = @"Select e.ID_Exercicio, Max(Nota_Nota)
                                From Materia m inner join Conteudo c on m.ID_Materia = c.ID_Materia
                                inner join Exercicio e on e.ID_Conteudo = c.ID_Conteudo 
                                inner join Nota n on n.ID_Exercicio = e.ID_Exercicio Where m.ID_Materia = " + D.Materia.ID + " and n.ID_Usuario = " + D.Usuario.ID + " group by e.ID_Exercicio";
            SqlDataReader dr = comm.ExecuteReader();

            while (dr.Read())
            {
                notas += Convert.ToDecimal(dr.GetValue(1));
            }
            dr.Close();
            comm.CommandType = System.Data.CommandType.StoredProcedure;
            comm.CommandText = "InserirDesempenho";
            comm.Parameters.Add("@Usuario", SqlDbType.Int).Value = D.Usuario.ID;
            comm.Parameters.Add("@Materia", SqlDbType.Int).Value = D.Materia.ID;
            if (notas > 0)
            {
                comm.Parameters.Add("@Porcentagem", SqlDbType.Decimal).Value = notas / quantidade;
            }
            else
            {
                comm.Parameters.Add("@Porcentagem", SqlDbType.Decimal).Value = 0;
            }
            comm.Parameters.Add("@HorasEstudadas", SqlDbType.Decimal).Value = D.HorasEstudadas;
            comm.ExecuteNonQuery();
            comm.Connection.Close();
        }
Пример #2
0
        /// <summary>
        /// retorna um objeto do tipo Desempenho contendo apenas o ID do Usuario e o ID Da Materia
        /// </summary>
        /// <param name="materia"> parametro do tipo inteiro que representa o id da materia</param>
        /// <param name="usuario">parametro do tipo inteiro que representa o id do usuario</param>
        /// <returns></returns>
        public Desempenho Consultar(int materia, int usuario)
        {
            SqlCommand    comm = new SqlCommand("Select * from Desempenho where ID_Materia = " + materia + " and ID_Usuario = " + usuario, Banco.Abrir());
            SqlDataReader dr   = comm.ExecuteReader();
            Desempenho    d    = new Desempenho();

            while (dr.Read())
            {
                Usuario u = new Usuario();
                u.ID = Convert.ToInt32(dr.GetValue(1));
                Materia m = new Materia();
                m.ID = Convert.ToInt32(dr.GetValue(2));
                d    = new Desempenho
                {
                    ID             = Convert.ToInt32(dr.GetValue(0)),
                    Usuario        = u,
                    Materia        = m,
                    Porcentagem    = Convert.ToDecimal(dr.GetValue(3)),
                    HorasEstudadas = Convert.ToDecimal(dr.GetValue(4))
                };
            }
            comm.Connection.Close();
            return(d);
        }