/// <summary> /// Retorna um objeto do tipo Questao completo /// Contendo list de ALternativa (Completo) /// </summary> /// <param name="id"> parametro do tipo inteiro representando o ID da Questao </param> /// <returns></returns> public Questao Consultar(int id) { SqlCommand comm = new SqlCommand("Select * from Questao Where ID_Questao = " + id, Banco.Abrir()); SqlDataReader dr = comm.ExecuteReader(); Questao q = new Questao(); while (dr.Read()) { q.ID = Convert.ToInt32(dr.GetValue(0)); Exercicio e = new Exercicio(); e.ID = Convert.ToInt32(dr.GetValue(1)); q.Exercicio = e; q.Ordem = Convert.ToInt32(dr.GetValue(2)); q.AleatorioAlternativa = Convert.ToBoolean(dr.GetValue(3)); q.Pergunta = dr.GetValue(4).ToString(); q.Tipo = dr.GetValue(5).ToString(); q.Usuario = Convert.ToInt32(dr.GetValue(6)); } dr.Close(); comm.CommandText = "Select ID_Alternativa, Ordem_Alternativa from Alternativa Where ID_Questao = " + id + " order by Ordem_Alternativa"; dr = comm.ExecuteReader(); List <Alternativa> lista = new List <Alternativa>(); while (dr.Read()) { AlternativaDAL dalalter = new AlternativaDAL(); Alternativa a = new Alternativa(); a = dalalter.Consultar(Convert.ToInt32(dr.GetValue(0))); lista.Add(a); } q.Alternativa = lista; dr.Close(); comm.CommandText = @"Select ID_Imagem, Ordem_ImagemQuestao from ImagemQuestao Where ID_Questao = " + id + " order by Ordem_ImagemQuestao"; dr = comm.ExecuteReader(); List <Imagem> listaIMG = new List <Imagem>(); while (dr.Read()) { ImagemDAL dalimg = new ImagemDAL(); Imagem i = new Imagem(); i = dalimg.Consultar(Convert.ToInt32(dr.GetValue(0))); listaIMG.Add(i); } q.Imagem = listaIMG; comm.Connection.Close(); return(q); }
/// <summary> /// Altera um Exercicio no Banco de daodos /// Precisando apenas do ID do Conteudo /// </summary> /// <param name="E"> Parametro do tipo exercicio | com id </param> public void Alterar(Exercicio E) { SqlCommand comm = new SqlCommand("Select * From Questao Where ID_Exercicio = " + E.ID, Banco.Abrir()); SqlDataReader dr = comm.ExecuteReader(); while (dr.Read()) { SqlCommand comm2 = new SqlCommand("Delete Alternativa Where ID_Questao = " + dr.GetValue(0).ToString(), Banco.Abrir()); comm2.ExecuteNonQuery(); try { comm2.CommandText = "Delete ImagemQuestao Where ID_Questao = " + dr.GetValue(0).ToString(); comm2.ExecuteNonQuery(); } catch { } comm2.Connection.Close(); } dr.Close(); comm.CommandText = "Delete Questao Where ID_Exercicio = " + E.ID; comm.ExecuteNonQuery(); foreach (var item in E.Questao) { QuestaoDAL dal = new QuestaoDAL(); item.ID = dal.Criar(item); foreach (var i in item.Alternativa) { i.Questao = item; AlternativaDAL dalalt = new AlternativaDAL(); dalalt.Criar(i); } } comm.CommandType = System.Data.CommandType.StoredProcedure; comm.CommandText = "AlterarExercicio"; comm.Parameters.Add("@ID", SqlDbType.Int).Value = E.ID; comm.Parameters.Add("@Conteudo", SqlDbType.Int).Value = E.Conteudo.ID; comm.Parameters.Add("@Descricao", SqlDbType.VarChar).Value = E.Descricao; comm.Parameters.Add("@Tipo", SqlDbType.Char).Value = E.Tipo; comm.Parameters.Add("@AleatorioQuestao", SqlDbType.Bit).Value = E.AleatorioQuestao; comm.Parameters.Add("@Usuario", SqlDbType.Int).Value = E.Usuario; comm.ExecuteNonQuery(); comm.Connection.Close(); }