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;
        }
Example #2
0
        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;
        }
Example #3
0
 public void translate(Pergunta perguntaTraduzida)
 {
     Pergunta perg = perguntaTraduzida;
     this.Name = perg.Name;
     this.TextoBase = perg.TextoBase;
 }
Example #4
0
        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;
        }
Example #5
0
 public void updatePergunta(Pergunta pergComp)
 {
     foreach (Pergunta perg in perguntas.Values)
     {
         if (perg.PerguntaID == pergComp.PerguntaID)
         {
             perguntas[perg.SortIndex] = pergComp;
             break;
         }
     }
 }
Example #6
0
        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);
        }
Example #7
0
        /// <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;
        }
Example #8
0
        public bool addPergunta(Pergunta perg)
        {
            if (!perguntas.ContainsKey(perg.SortIndex))
                perguntas.Add(perg.SortIndex, perg);
            else
                return false;

            return true;
        }