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 addNewFamilia() { ModeloCompetencias currModelo; FamiliaCompetencias novaFamilia; if (Session["selectedObject"].GetType() == typeof(ModeloCompetencias)) { currModelo = (ModeloCompetencias)Session["currModelo"]; } else { currModelo = ((FamiliaCompetencias)Session["currModelo"]).Modelo; } novaFamilia = new FamiliaCompetencias(currModelo); selectedObject = novaFamilia; Session["selectedObject"] = selectedObject; Session.Add("mode", "ADD_NEW"); View selView; selView = FamiliaView; if (selView != null) { MView.SetActiveView(selView); } else { MView.Visible = false; commonDataFieldsTable.Visible = false; } updateCommonFields(); updateSpecialFields(); }
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 translate(FamiliaCompetencias familiaTraduzida) { this.Name = familiaTraduzida.Name; this.PublicName = familiaTraduzida.publicName; this.Description = familiaTraduzida.Description; this.IntroText = familiaTraduzida.IntroText; this.CommentsText = familiaTraduzida.CommentsText; // então vamos traduzir o modelo foreach (Competencia comp in Competencias.Values) { comp.translate(familiaTraduzida.Competencias[comp.SortIndex]); } }
public FamiliaCompetencias Copy(ModeloCompetencias mod) { FamiliaCompetencias novo = new FamiliaCompetencias(mod); novo.name = this.name; novo.publicName = this.publicName; novo.description = this.description; novo.introText = this.introText; novo.allowRespondentComments = this.allowRespondentComments; novo.commentsText = this.commentsText; return novo; }
public FamiliaCompetencias copy() { FamiliaCompetencias nova = new FamiliaCompetencias(modelo); nova.familiaID = familiaID; nova.name = name; nova.creationDate = creationDate; nova.publicName = publicName; nova.sortIndex = sortIndex; nova.description = description; nova.introText = introText; nova.allowRespondentComments = allowRespondentComments; nova.commentsText = commentsText; return nova; }
public bool copiaModelo(FamiliaCompetencias famModel) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "replicaCompetenciasFamilia"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.AddWithValue("familiaID", this.familiaID); command.Parameters.AddWithValue("originalFamiliaID", famModel.familiaID); conn.Open(); command.ExecuteNonQuery(); conn.Close(); return true; }
/// <summary> /// Carrega as famílias de um modelo /// </summary> public bool loadFamilias(string owner) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "getFamilias"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("modeloID", 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; FamiliaCompetencias fam; int allow; foreach (DataRow dr in ds.Tables[0].Rows) { fam = new FamiliaCompetencias(this); fam.CreationDate = Convert.ToDateTime(dr["creationDate"]); fam.Description = Convert.IsDBNull(dr["Description"]) ? null : Convert.ToString(dr["Description"]); fam.IntroText = Convert.IsDBNull(dr["IntroText"]) ? null : Convert.ToString(dr["IntroText"]); fam.Name = Convert.ToString(dr["Name"]); fam.PublicName = Convert.ToString(dr["PublicName"]); fam.FamiliaID = Convert.ToInt32(dr["ID"]); fam.SortIndex = Convert.ToInt32(dr["sortIndex"]); ; allow = Convert.IsDBNull(dr["AllowComments"]) ? 0 : Convert.ToInt32(dr["AllowComments"]) == 0 ? 0 : 1; fam.AllowRespondentComments = allow == 0 ? false : true; fam.CommentsText = Convert.IsDBNull(dr["CommentsText"]) ? null : Convert.ToString(dr["CommentsText"]); fam.Modelo = this; addFamilia(fam); } return true; }
public void updateFamilia(FamiliaCompetencias famComp) { foreach (FamiliaCompetencias fam in familias.Values) { if (fam.FamiliaID == famComp.FamiliaID) { familias[fam.SortIndex] = famComp; break; } } }
public void removeFamilia(FamiliaCompetencias fam) { SqlConnection conn = new SqlConnection(DBHelper.ConnectionString); SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = "removeFamilia"; command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("familiaID", fam.FamiliaID)); command.Parameters.Add(new SqlParameter("modeloID", modeloID)); conn.Open(); command.ExecuteNonQuery(); conn.Close(); familias.Remove(fam.FamiliaID); }
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 Competencia(FamiliaCompetencias fam) { praticas = new SortedList<int, Pratica>(); familia = fam; competenciaID = -1; }
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; }
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 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; } }
public bool addFamilia(FamiliaCompetencias FComp) { if (!familias.ContainsKey(FComp.SortIndex)) familias.Add(FComp.SortIndex, FComp); else return false; return true; }