protected void botMigrateModel_Click(object sender, EventArgs e) { lblStatus.Text = "Start Migration"; DBHelper.ConnectionString = txtSourceConnection.Text; ModeloCompetencias _modelo = ModeloCompetencias.getDBModelo("JC", int.Parse(DDLModelos.SelectedValue)); // agora vai criar o modelo na base de dados de produção _modelo.loadFull("JC", null); DBHelper.ConnectionString = this.txtDestConnection.Text; // cria o modelo ModeloCompetencias NovoModelo = new ModeloCompetencias(); NovoModelo = _modelo; NovoModelo.reset(); NovoModelo.updateDBModelo("JC"); for (int i = 0; i < _modelo.Familias.Count; i++) { FamiliaCompetencias novaFam = new FamiliaCompetencias(NovoModelo); novaFam = NovoModelo.Familias.Values[i]; novaFam.Modelo = NovoModelo; novaFam.reset(); novaFam.SortIndex = i; novaFam.cloneDBFamilia("JC"); for (int j = 0; j < _modelo.Familias.Values[i].Competencias.Count; j++) { Competencia novaComp = new Competencia(); novaComp = NovoModelo.Familias.Values[i].Competencias.Values[j]; novaComp.reset(); novaComp.SortIndex = j; novaComp.Familia = novaFam; novaComp.cloneDBCompetencia("JC"); for (int k = 0; k < _modelo.Familias.Values[i].Competencias.Values[j].Praticas.Count; k++) { Pratica novaPrat = new Pratica(); novaPrat = NovoModelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k]; novaPrat.Competencia = novaComp; novaPrat.reset(); novaPrat.SortIndex = k; novaPrat.cloneDBPratica("JC"); for (int l = 0; l < _modelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k].Perguntas.Count; l++) { Pergunta novaPerg = new Pergunta(); novaPerg = NovoModelo.Familias.Values[i].Competencias.Values[j].Praticas.Values[k].Perguntas.Values[l]; novaPerg.reset(); novaPerg.Pratica = novaPrat; novaPerg.SortIndex = l; novaPerg.cloneDBPergunta("JC"); } } } } lblStatus.Text = "Migration Ended"; // depois volta a colocar a limpar a coisa DBHelper.ConnectionString = ""; }
protected void addNewCompetencia() { ModeloCompetencias currModelo; FamiliaCompetencias currFamilia; Competencia novaCompetencia; currFamilia = (FamiliaCompetencias)Session["selectedObject"]; currModelo = currFamilia.Modelo; novaCompetencia = new Competencia(currFamilia); selectedObject = novaCompetencia; Session["selectedObject"] = selectedObject; Session.Add("mode", "ADD_NEW"); View selView; selView = CompetenciaView; if (selView != null) { MView.SetActiveView(selView); } else { MView.Visible = false; commonDataFieldsTable.Visible = false; } updateCommonFields(); updateSpecialFields(); }
protected void prevPage() { currPage--; fimQuestionario = false; progressBar.currPage = currPage; // passa para a próxima competência currCompetenciaIndex--; if (currCompetenciaIndex < 0) { // esta família não tem mais competência, passar para a família seguinte // primeira competência currFamiliaIndex--; if (currFamiliaIndex < 0) { initFormulario(); currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } else { currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetenciaIndex = currFamilia.Competencias.Count - 1; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } } else { currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } // verifica se há mais para andar para trás if ((currFamiliaIndex == 0) && (currCompetenciaIndex == 0)) { inicioQuestionario = true; fimQuestionario = false; } }
protected void Page_Load(object sender, EventArgs e) { getTicketList(); getProjectInfo(); Session.Timeout = 15; // language settings if (Context.Session["Dicionario"] != null) { dic = (Dicionario)Context.Session["Dicionario"]; } else { // 2.2 OBTER INFORMAÇÃO SOBRE O IDIOMA String langCode; if (ticketList[0].LangCode != null) langCode = ticketList[0].LangCode; else if (projecto.defaultLangCode != null) langCode = projecto.defaultLangCode; else if (projecto.defaultLangCode != null && projecto.defaultLangCode.Trim() == "") langCode = "pt"; else langCode = "pt"; dic = new Dicionario(langCode); Session.Add("Dicionario", dic); } setupStyle(); MyGlobal.addTickets(ticketList); // 3.1 obter outros ticket neste contexto List<Ticket> TMP_listaTickets = Ticket.getAllTickets(proprio.PessoaID, projecto.ProjectoID, projecto.owner); // 3.2 tem um ou mais ? if (TMP_listaTickets.Count == 1) Session["ONE_SHOT"] = true; // 3.3 há necessidade de obter dados demográficos? if (proprio.Demographics != null) { if (proprio.Demographics != "") { if (proprio.Demographics.StartsWith("GET")) { // temos de recolher dados, salta para lá // guarda também o endereço de retorno String tickets = Request["ticket"] == null ? "" : "?ticket=" + Request["ticket"]; Response.Redirect("FO_Demographics.aspx" + tickets); } } } // carrega o modelo if (Session["FO_Model"] == null) { modelo = ModeloCompetencias.getDBModelo(Utility.currProjeto.owner, ticketList[0].ModeloID); if (modelo == null) modelo = ModeloCompetencias.getDBModelo("TEMPLATE", ticketList[0].ModeloID); if (modelo == null) { Response.Redirect("GenericError.aspx"); return; } modelo.loadFull(Utility.currProjeto.owner, ticketList[0]); Session.Add("FO_Model", modelo); } else { modelo = (ModeloCompetencias)Session["FO_Model"]; } setUpHistograma(); tipoDeAvaliacao(); if ((currCompetenciaIndex == -1) && (currFamiliaIndex == -1)) { initFormulario(); } if (IsPostBack) { closing = false; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; // analisa input do participante String comando = txtUserCommand.Value; if (comando.Equals("NEXT")) { saveUserInput(); nextPage(); } else if (comando.Equals("BACK")) { saveUserInput(); prevPage(); } else if (comando.Equals("NEVER_TIMEOUT")) { saveUserInput(); } else if (comando.Equals("PAUSE")) { saveUserInput(); if (Session["ONE_SHOT"] != null) Response.Redirect("FO_Suspend.aspx"); else Response.Redirect("FO_DashBoard.aspx?Ticket=" + ticketList[0].Chave + "&Cover=False&Refresh=True"); } else if (comando.Equals("CLOSE")) { closing = true; saveUserInput(); if (Session["ONE_SHOT"] != null) Response.Redirect("FO_Complete.aspx"); else Response.Redirect("FO_DashBoard.aspx?Ticket=" + ticketList[0].Chave + "&Cover=False&Refresh=True"); } } if (!IsPostBack) { int menor = int.MaxValue; // determina para que página temos de avançar currPage = 0; currCompetenciaIndex = 0; currFamiliaIndex = 0; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; foreach (Ticket t in ticketList) { if (t.pagina < menor) menor = t.pagina; } for (int i = 0; i < menor; i++) { if (!nextPage()) break; } } progressBar.Comprimento = 120; if (DateTime.Now.Date > projecto.DataFim) Response.Redirect("ticketError.aspx?Error=Closed"); totalPaginas = (int)Math.Round(((float)(totalPerguntas / (float)(perguntasPorPagina) + 0.5f)), 0); if (totalPerguntas % perguntasPorPagina == 0) totalPaginas--; RenderPage(); if (currCompetencia != null) { if ((projecto.validaPagina == 1) && (currCompetencia.Opcional == true)) ValidaPagina = ""; else if ((projecto.validaPagina == 1)) NaoValidaPagina = ""; else ValidaPagina = ""; } else { if ((projecto.validaPagina == 1)) NaoValidaPagina = ""; else ValidaPagina = ""; } Page.Title = projecto.Nome; lblStatsTitle.Text = dic.getResource(45); /*Estatísticas*/ lblProgressoTit.Text = dic.getResource(39); /*Progresso*/ lblHistTit.Text = dic.getResource(40); /*Histograma*/ lblRelFunc.Text = dic.getResource(42); /*Relevância para a Função*/ if (currCompetencia.Type == "C" || currCompetencia.Type == "D") lblCompCritic.Text = ""; else lblCompCritic.Text = dic.getResource(41); /*Comportamentos Críticos*/ lblRelFunc2.Text = dic.getResource(42); /*Relevância para a Função*/ lblComents.Text = dic.getResource(63); /*Comentários e Observações*/ // acerta o tamanho da escala histVertical.TamanhoEscala = projecto.TamanhoEscala; histRelev.TamanhoEscala = projecto.TamanhoEscala; String messes = ""; messes += "var mensagem1 = \"" + dic.getResource(64) + "\";"; messes += "var mensagem2 = \"" + dic.getResource(65) + "\";"; messes += "var mensagem3 = \"" + dic.getResource(66) + "\";"; messes += "var mensagem4 = \"" + dic.getResource(67) + "\";"; messes += "var mensagem5 = \"" + "Por favor complete a sua resposta." + "\";"; MensagensIdioma = MensagensIdioma.Replace("####", messes); ScriptManager.RegisterStartupScript(this, typeof(Page), "UniqueID", js.ToString(), true); //ScriptManager.RegisterStartupScript(this, typeof(Page), "UniqueID1", "initCheckBoxs();", true); }
protected Boolean nextPage() { // valida se já estão respondidas todas as questões antes de passar à seguinte foreach (Ticket t in ticketList) { if (currCompetencia.Criticalidade) { if (t.listaRespostas.ContainsKey("C" + currCompetencia.CompetenciaID.ToString())) { if (t.listaRespostas["C" + currCompetencia.CompetenciaID.ToString()] == "-1") return false; } } foreach (Pratica prat in modelo.Familias.Values[currFamiliaIndex].Competencias.Values[currCompetenciaIndex].Praticas.Values) { foreach (Pergunta p in prat.Perguntas.Values) { if (projecto.validaPagina == 1 && !currCompetencia.Opcional) { if (t.listaRespostas.ContainsKey("P" + p.PerguntaID.ToString()) || t.listaRespostas.ContainsKey("T" + p.PerguntaID.ToString())) // se contém esta chave vamos ver se está vazia { // se estiver vazia para aqui if (t.listaRespostas.ContainsKey("P" + p.PerguntaID.ToString())) { if (t.listaRespostas["P" + p.PerguntaID.ToString()] == "-1") return false; } if (t.listaRespostas.ContainsKey("T" + p.PerguntaID.ToString()) /*|| t.listaRespostas.ContainsKey("T" + p.ToString())*/) { continue; } } else if (t.listaRespostas.ContainsKey("Antony_" + p.PerguntaID.ToString())) { if (t.listaRespostas.ContainsKey("Antony_" + p.PerguntaID.ToString())) { if (t.listaRespostas["Antony_" + p.PerguntaID.ToString()] == "") return false; } } else if (t.listaRespostas.ContainsKey("Rad_" + prat.PraticaID + "_Maior") && t.listaRespostas.ContainsKey("Rad_" + prat.PraticaID + "_Menor")) { if (t.listaRespostas.ContainsKey("Rad_" + prat.PraticaID + "_Maior")) { if (t.listaRespostas["Rad_" + prat.PraticaID + "_Maior"] == "") return false; if (t.listaRespostas["Rad_" + prat.PraticaID + "_Menor"] == "") return false; } } else if (t.listaRespostas.ContainsKey("TSL" + prat.PraticaID.ToString())) { if (t.listaRespostas.ContainsKey("TSL" + prat.PraticaID.ToString())) { // if (t.listaRespostas["TSL" + prat.PraticaID.ToString()] == "") continue; } } else if (t.listaRespostas.Count() > 0) { // analisa as que têm multiplas opções String[] options = prat.CriticalidadeText.Split(';'); foreach (String opt in options) { if (t.listaRespostas.ContainsKey("Rad_" + prat.PraticaID + "_" + opt)) { if (t.listaRespostas["Rad_" + prat.PraticaID + "_" + opt] == "") return false; } } } else // se não contiver a chave, também não está bem porque deveria conter, por isso também para por aqui return false; } } } } currPage++; progressBar.currPage = currPage; inicioQuestionario = false; // passa para a próxima competência currCompetenciaIndex++; // insere as chaves do que está à espera na próxima competência // foreach if (currCompetenciaIndex >= currFamilia.Competencias.Count) { // esta família não tem mais competência, passar para a família seguinte // primeira competência currFamiliaIndex++; if (currFamiliaIndex >= modelo.Familias.Count) { fimQuestionario = true; currFamiliaIndex = modelo.Familias.Count - 1; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetenciaIndex = currFamilia.Competencias.Count - 1; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } else { currCompetenciaIndex = 0; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } } else { currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } // verifica se há mais andar para a frente if ((currFamiliaIndex == modelo.Familias.Values.Count - 1) && currCompetenciaIndex == currFamilia.Competencias.Count - 1) { fimQuestionario = true; inicioQuestionario = false; } // no caso de ser um 360_Flat, controlar o surgimento do botão terminar. if (modelo.ModelType.ToUpper() == "360_FLAT") { if (currPage == totalPaginas - 1) { fimQuestionario = true; inicioQuestionario = false; } } return true; //Guarda o tempo em que foi feito //Calcula os valores: média e tempo estimado para terminar }
public void updateCompetencia(Competencia compComp) { foreach (Competencia comp in competencias.Values) { if (comp.CompetenciaID == compComp.CompetenciaID) { competencias[comp.SortIndex] = compComp; break; } } }
public void removeCompetencia(Competencia comp) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "removeCompetencia"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("competenciaID", comp.CompetenciaID)); command.Parameters.Add(new SqlParameter("familiaID", familiaID)); conn.Open(); command.ExecuteNonQuery(); conn.Close(); competencias.Remove(comp.CompetenciaID); }
/// <summary> /// Carrega competências de uma família /// </summary> public bool loadCompetencias(string owner, Ticket t) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "getCompetencias"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("familiaID", familiaID)); command.Parameters.Add(new SqlParameter("modeloID", 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; // se estamos com tickets que necessitam de retirar partes do modelo String[] toRemove; List<int> IDsToRemove = new List<int>(); if (t != null) { if (t.QuestionPattern != null && t.QuestionPattern.Trim() != "") { toRemove = t.QuestionPattern.Split(';'); foreach (string remove in toRemove) { if (remove.StartsWith("C")) { IDsToRemove.Add(int.Parse(remove.Replace("C", ""))); } } } } Competencia com; int allow; Boolean temCompetencias = false; foreach (DataRow dr in ds.Tables[0].Rows) { if (IDsToRemove.Contains(Convert.ToInt32(dr["ID"]))) continue; temCompetencias = true; com = new Competencia(); com.CreationDate = Convert.ToDateTime(dr["creationDate"]); com.Description = Convert.IsDBNull(dr["Description"]) ? null : Convert.ToString(dr["Description"]); com.IntroText = Convert.IsDBNull(dr["IntroText"]) ? null : Convert.ToString(dr["IntroText"]); com.Name = Convert.ToString(dr["Name"]); com.PublicName = Convert.ToString(dr["PublicName"]); com.CompetenciaID = Convert.ToInt32(dr["ID"]); com.SortIndex = Convert.ToInt32(dr["sortIndex"]); ; allow = Convert.IsDBNull(dr["AllowComments"]) ? 0 : Convert.ToInt32(dr["AllowComments"]) == 0 ? 0 : 1; com.AllowRespondentComments = allow == 0 ? false : true; com.CommentsText = Convert.IsDBNull(dr["commentsText"]) ? null : Convert.ToString(dr["commentsText"]); allow = Convert.IsDBNull(dr["criticalidade"]) ? 0 : Convert.ToInt32(dr["criticalidade"]) == 0 ? 0 : 1; com.Criticalidade = allow == 0 ? false : true; if (com.Criticalidade) com.CriticalidadeScale = Convert.IsDBNull(dr["criticalidadeScale"]) ? null : Convert.ToString(dr["criticalidadeScale"]); com.CriticalidadeText = Convert.IsDBNull(dr["criticalidadeText"]) ? null : Convert.ToString(dr["criticalidadeText"]); com.PlainText = Convert.IsDBNull(dr["plainText"]) ? null : Convert.ToString(dr["plainText"]); com.PlainText = com.CriticalidadeText; com.Type = Convert.IsDBNull(dr["Type"]) ? null : Convert.ToString(dr["Type"]); com.NR = Convert.IsDBNull(dr["NR"]) ? false : Convert.ToBoolean(dr["NR"]); com.Opcional = Convert.IsDBNull(dr["Opcional"]) ? false : Convert.ToBoolean(dr["Opcional"]); com.Familia = this; addCompetencia(com); } return temCompetencias; }
public bool addCompetencia(Competencia comp) { if (!competencias.ContainsKey(comp.SortIndex)) competencias.Add(comp.SortIndex, comp); else return false; return true; }
protected void Page_Load(object sender, EventArgs e) { Page.Title = "multiRater 360º - Take Survey"; getTicketList(); getProjectInfo(); setupStyle(); // carrega o modelo if (Session["FO_Model"] == null) { modelo = ModeloCompetencias.getDBModelo(Utility.currProjeto.owner, ticketList[0].ModeloID); if (modelo == null) { Response.Redirect("GenericError.aspx"); return; } modelo.loadFull(Utility.currProjeto.owner, null); Session.Add("FO_Model", modelo); } else { modelo = (ModeloCompetencias)Session["FO_Model"]; } tipoDeAvaliacao(); if ((currCompetenciaIndex == -1) && (currFamiliaIndex == -1)) { initFormulario(); } currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; if (projecto.validaPagina == 1) NaoValidaPagina = ""; else ValidaPagina = ""; if (IsPostBack) { closing = false; // analisa input do participante String comando = txtUserCommand.Value; if (comando.Equals("NEXT")) { nextPage(); saveUserInput(); } else if (comando.Equals("BACK")) { prevPage(); saveUserInput(); } else if (comando.Equals("PAUSE")) { saveUserInput(); Response.Redirect("FO_DashBoard.aspx?Ticket=" + ticketList[0].Chave + "&Cover=False&Refresh=True"); } else if (comando.Equals("CLOSE")) { closing = true; saveUserInput(); Response.Redirect("FO_DashBoard.aspx?Ticket=" + ticketList[0].Chave + "&Cover=False&Refresh=True"); } } if (!IsPostBack) { int menor = int.MaxValue; // determina para que página temos de avançar foreach (Ticket t in ticketList) { if (t.pagina < menor) menor = t.pagina; } for (int i = 0; i < menor; i++) { nextPage(); } } progressBar.Comprimento = 120; if (DateTime.Now.Date > projecto.DataFim) Response.Redirect("ticketError.aspx?Error=Closed"); RenderPage(); ScriptManager.RegisterStartupScript(this, typeof(Page), "UniqueID", js.ToString(), true); ScriptManager.RegisterStartupScript(this, typeof(Page), "UniqueID1", "initCheckBoxs(); pageScroll();", true); }
protected void nextPage() { currPage++; inicioQuestionario = false; // passa para a próxima competência currCompetenciaIndex++; if (currCompetenciaIndex >= currFamilia.Competencias.Count) { // esta família não tem mais competência, passar para a família seguinte // primeira competência currFamiliaIndex++; if (currFamiliaIndex >= modelo.Familias.Count) { fimQuestionario = true; currFamiliaIndex = modelo.Familias.Count - 1; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetenciaIndex = currFamilia.Competencias.Count - 1; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } else { currCompetenciaIndex = 0; currFamilia = modelo.Familias.Values[currFamiliaIndex]; currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } } else { currCompetencia = currFamilia.Competencias.Values[currCompetenciaIndex]; } // verifica se há mais andar para a frente if ((currFamiliaIndex == modelo.Familias.Values.Count - 1) && currCompetenciaIndex == currFamilia.Competencias.Count - 1) { fimQuestionario = true; inicioQuestionario = false; } //Guarda o tempo em que foi feito //Calcula os valores: média e tempo estimado para terminar }
public void translate(Competencia competenciaTraduzida) { Competencia com = competenciaTraduzida; this.Description = com.Description; this.IntroText = com.introText; this.Name = com.Name; this.PublicName = com.publicName; this.CommentsText = com.commentsText; this.Criticalidade = com.criticalidade; this.CriticalidadeScale = com.criticalidadeScale; this.CriticalidadeText = com.criticalidadeText; this.PlainText = com.PlainText; this.CriticalidadeText = com.CriticalidadeText; // então vamos traduzir o modelo foreach (Pratica prat in Praticas.Values) { prat.translate(competenciaTraduzida.praticas[prat.SortIndex]); } }
public Competencia Copy(FamiliaCompetencias familia) { Competencia com = new Competencia(); com.CreationDate = this.creationDate; com.Description = this.description ; com.IntroText = this.introText; com.Name = this.name; com.PublicName = this.publicName; com.AllowRespondentComments = this.allowRespondentComments; com.CommentsText = this.commentsText; com.Criticalidade = this.criticalidade; com.CriticalidadeScale = this.criticalidadeScale; com.CriticalidadeText = this.criticalidadeText; if (this.plainText != "") com.PlainText = this.plainText; else com.PlainText = com.CriticalidadeText; com.Type = this.type; com.NR = this.NR; com.Opcional = this.Opcional; com.familia = familia; return com; }
public Pratica(Competencia comp) { perguntas = new SortedList<int, Pergunta>(); competencia = comp; praticaID = -1; }
public Pratica Copy(Competencia comp) { Pratica prat = new Pratica(); prat.CreationDate = this.creationDate; prat.Description = this.description; prat.IntroText = this.introText; prat.Name = this.name; prat.PublicName = this.publicName; prat.AllowRespondentComments = this.allowRespondentComments; prat.CommentsText = this.commentsText; prat.Criticalidade = this.criticalidade; prat.CriticalidadeScale = this.criticalidadeScale; prat.NR = this.NR; prat.CriticalidadeText = this.criticalidadeText; prat.Competencia = comp; return prat; }