public Pergunta[] getPerguntas(int start, int end) { if (perguntasOrdenadas == null) { perguntasOrdenadas = new SortedList<int, Pergunta>(); foreach (FamiliaCompetencias fam in familias.Values) { foreach (Competencia comp in fam.Competencias.Values) { foreach (Pratica prat in comp.Praticas.Values) { foreach (Pergunta p in prat.Perguntas.Values) { if (!perguntasOrdenadas.ContainsKey(p.MainSortIndex)) perguntasOrdenadas.Add(p.MainSortIndex, p); else perguntasOrdenadas.Add(perguntasOrdenadas.Keys.Max() + 100, p); // coloca-a muito depois do fim } } } } } Pergunta[] output = new Pergunta[end - start]; for (int i = 0; i < end - start; i++) if (perguntasOrdenadas.ContainsKey(i + start)) output[i] = perguntasOrdenadas.Values[i + start]; else break; return output; }
public Pergunta Copy(Pratica prat) { Pergunta perg = new Pergunta(); perg.TextoBase = this.textoBase; perg.Name = this.name; perg.tipoPergunta = this.tipoPergunta; perg.valor = this.valor; perg.ponderador = this.ponderador; perg.Codificacao = this.Codificacao; perg.Pratica = prat; return perg; }
public void translate(Pergunta perguntaTraduzida) { Pergunta perg = perguntaTraduzida; this.Name = perg.Name; this.TextoBase = perg.TextoBase; }
public static Pergunta getPergunta(int ID) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "getPergunta"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("ID", ID)); SqlDataAdapter da = new SqlDataAdapter(command); DataSet ds = new DataSet(); conn.Open(); da.Fill(ds); conn.Close(); if (ds.Tables[0].Rows.Count <= 0) return null; Pergunta perg; DataRow dr = ds.Tables[0].Rows[0]; { perg = new Pergunta(); perg.PerguntaID = Convert.ToInt32(dr["ID"]); perg.TextoBase = Convert.IsDBNull(dr["Pergunta"]) ? null : Convert.ToString(dr["Pergunta"]); //perg.SortIndex = Convert.ToInt32(dr["sortIndex"]); perg.Name = Convert.IsDBNull(dr["Name"]) ? null : Convert.ToString(dr["Name"]); //perg.MainSortIndex = Convert.IsDBNull(dr["mainSortIndex"]) ? -1 : Convert.ToInt32(dr["mainSortIndex"]); perg.tipoPergunta = Convert.IsDBNull(dr["tipoPergunta"]) ? null : Convert.ToString(dr["tipoPergunta"]); perg.valor = Convert.IsDBNull(dr["valor"]) ? -1 : Convert.ToInt32(dr["valor"]); perg.ponderador = Convert.IsDBNull(dr["valor"]) ? -1.0F : (float)Convert.ToDouble(dr["valor"]); perg.Codificacao = Convert.IsDBNull(dr["Codificacao"]) ? null : Convert.ToString(dr["Codificacao"]); } return perg; }
public void updatePergunta(Pergunta pergComp) { foreach (Pergunta perg in perguntas.Values) { if (perg.PerguntaID == pergComp.PerguntaID) { perguntas[perg.SortIndex] = pergComp; break; } } }
public void removePergunta(Pergunta perg) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "removePergunta"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("praticaID", praticaID)); command.Parameters.Add(new SqlParameter("perguntaID", perg.PerguntaID)); conn.Open(); command.ExecuteNonQuery(); conn.Close(); perguntas.Remove(perg.PerguntaID); }
/// <summary> /// Carrega práticas desta competência /// </summary> public bool loadPerguntas(string owner) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "getPerguntas"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("praticaID", praticaID)); command.Parameters.Add(new SqlParameter("competenciaID", competencia.CompetenciaID)); command.Parameters.Add(new SqlParameter("familiaID", competencia.Familia.FamiliaID)); command.Parameters.Add(new SqlParameter("modeloID", competencia.Familia.Modelo.ModeloID)); command.Parameters.Add(new SqlParameter("owner", owner)); SqlDataAdapter da = new SqlDataAdapter(command); DataSet ds = new DataSet(); conn.Open(); da.Fill(ds); conn.Close(); if (ds.Tables[0].Rows.Count <= 0) return false; SortedList<int, Pergunta> tempList; tempList = new SortedList<int, Pergunta>(); Pergunta perg; Boolean needCompact = false; foreach (DataRow dr in ds.Tables[0].Rows) { perg = new Pergunta(); perg.PerguntaID = Convert.ToInt32(dr["ID"]); perg.TextoBase = Convert.IsDBNull(dr["Pergunta"]) ? null : Convert.ToString(dr["Pergunta"]); perg.SortIndex = Convert.ToInt32(dr["sortIndex"]); perg.Name = Convert.IsDBNull(dr["Name"]) ? null : Convert.ToString(dr["Name"]); perg.MainSortIndex = Convert.IsDBNull(dr["mainSortIndex"]) ? -1 : Convert.ToInt32(dr["mainSortIndex"]); perg.tipoPergunta = Convert.IsDBNull(dr["tipoPergunta"]) ? null : Convert.ToString(dr["tipoPergunta"]); perg.valor = Convert.IsDBNull(dr["valor"]) ? -1 : Convert.ToInt32(dr["valor"]); perg.ponderador = Convert.IsDBNull(dr["valor"]) ? -1.0F : (float)Convert.ToDouble(dr["valor"]); perg.Codificacao = Convert.IsDBNull(dr["Codificacao"]) ? null : Convert.ToString(dr["Codificacao"]); perg.Pratica = this; while (tempList.ContainsKey(perg.SortIndex)) { perg.SortIndex++; needCompact = true; } tempList.Add(perg.SortIndex, perg); } // Compactar sortindexes perguntas int count = 0; foreach (Pergunta p in tempList.Values) { p.SortIndex = count; count++; addPergunta(p); } if (needCompact) { foreach (Pergunta p in perguntas.Values) { p.updateSortIndex(); } } return true; }
public bool addPergunta(Pergunta perg) { if (!perguntas.ContainsKey(perg.SortIndex)) perguntas.Add(perg.SortIndex, perg); else return false; return true; }