/// <summary> /// Metodo que carga en pantalla la encuesta asignada, con sus preguntas y respuestas. /// </summary> private void CargaEncuesta() { try { //Se leen los registros almadenados en las bases de datos using (SqliteCommand contents = connection.CreateCommand()) { contents.CommandText = "SELECT [IdEncuesta],[DescEncuesta],[IdPregunta],[DescPregunta],[Respuestas] from [DatosEncuesta]"; var r = contents.ExecuteReader(); bool RowsExist = false; while (r.Read())//Por cada registro pintamos la información en la pantalla en alguna etiqueta { RowsExist = true; } if (RowsExist == true) { FillEncuesta = new List <Encuesta>(); SqliteCommand leedatos = connection.CreateCommand(); leedatos.CommandText = "SELECT [IdEncuesta],[DescEncuesta],[IdPregunta],[DescPregunta],[Respuestas] from [DatosEncuesta]"; try { var rr = leedatos.ExecuteReader(); while (rr.Read()) { Preguntas = new Encuesta(); IdEncuesta = int.Parse(rr["IdEncuesta"].ToString()); Preguntas.Id = rr["IdPregunta"].ToString(); Preguntas.Pregunta = rr["DescPregunta"].ToString(); string[] strRespuesta = rr["Respuestas"].ToString().Split('&'); if (strRespuesta.Length > 0) { int NumResp = strRespuesta.Length; if (NumResp == 1 && strRespuesta[0] == "") { NumResp = 0; strRespuesta = new string[0]; } Preguntas.Respuesta = new string[NumResp]; for (int ini = 0; ini < strRespuesta.Length; ini++) { Preguntas.Respuesta[ini] = strRespuesta[ini].ToString(); } } FillEncuesta.Add(Preguntas); } arrayIds = new string[FillEncuesta.Count]; MuestraPreguntas(IDSeleccionado, out IsFinal); btnAtras.Visibility = ViewStates.Invisible; } catch (Exception exep) { } } else { if (tieneEncuesta == false) { Dialog dialog = new Dialog(this); dialog.SetContentView(Resource.Layout.MensajeSINO); dialog.SetTitle("ENCUESTAS ACTIVAS"); dialog.SetCancelable(true); ImageButton btnAceptaAccion = ((ImageButton)dialog.FindViewById(Resource.Id.btnAceptaAccion)); btnAceptaAccion.Click += new EventHandler(btnAceptaAccion_Click); dialog.Show(); } else { try { //WEB SERVICES TDI_EncDisp = asmxEM.ObtieneEncuestaPorDispositivo(IdDispositivo, Servicio.ClsVariables.NumeroTel); //Almacenamos el Id del Dispositivo para el guardado en la base de datos //Este apartado es para presentar las encuestas en la pantalla FillEncuesta = new List <Encuesta>(); if (TDI_EncDisp != null) { for (int disp = 0; disp < TDI_EncDisp.Length; disp++) { if (TDI_EncDisp[disp].ListaEncuesta != null) { for (int enc = 0; enc < TDI_EncDisp[disp].ListaEncuesta.Length; enc++) { //Almacenamos el Id de la Encuesta para el guardado en base de datos IdEncuesta = TDI_EncDisp[disp].ListaEncuesta[enc].IdEncuesta; DescEncuesta = TDI_EncDisp[disp].ListaEncuesta[enc].NombreEncuesta; if (TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg != null) { for (int preg = 0; preg < TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg.Length; preg++) { arrayIds = new string[TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg.Length]; Encuesta Preguntas = new Encuesta(); IdPregunta = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].IdPregunta.ToString(); Preguntas.Id = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].IdPregunta.ToString(); DescPregunta = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].PreguntaDesc; Preguntas.Pregunta = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].PreguntaDesc; Preguntas.Respuesta = new string[TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas.Length]; //{ "" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdRespuesta + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].RespuestaDescripcion + "|3", "4|No|4" }; if (TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas != null) { for (int resp = 0; resp < TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas.Length; resp++) { Preguntas.Respuesta[resp] = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdRespuesta + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].RespuestaDescripcion + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdSiguientePregunta; } } FillEncuesta.Add(Preguntas); string RespuestasInserta = ""; int cuenta = 0; foreach (string presp in Preguntas.Respuesta) { cuenta++; int totalResp = Preguntas.Respuesta.Length; if (totalResp == cuenta) { RespuestasInserta += presp.ToString(); } else { RespuestasInserta += presp.ToString() + "&"; } } using (SqliteCommand com = connection.CreateCommand()) { String strQuery = "INSERT INTO [DatosEncuesta] ([IdEncuesta],[DescEncuesta],[IdPregunta],[DescPregunta],[Respuestas]) values('" + IdEncuesta + "','" + DescEncuesta + "','" + IdPregunta + "','" + DescPregunta + "','" + RespuestasInserta + "');"; com.CommandText = strQuery; com.ExecuteNonQuery(); } } } } } } } } catch (Exception error) { var Err = error.Message; } MuestraPreguntas(IDSeleccionado, out IsFinal); btnAtras.Visibility = ViewStates.Invisible; } } } } catch (Exception exep) { var exe = exep.Message; } preguntasTot.Text = "Pregunta: " + NumPreguntas + "/" + (FillEncuesta.Count - 1); }
private void TieneEncuestas() { try { tva.THE_Dispositivo[] dispos = null; try { #region trae encuestas TDI_EncDisp = asmxEM.ObtieneEncuestaPorDispositivo(idDispositivo, numetel); FillEncuesta = new List <Encuesta>(); if (TDI_EncDisp != null) { for (int disp = 0; disp < TDI_EncDisp.Length; disp++) { if (TDI_EncDisp[disp].ListaEncuesta != null) { for (int enc = 0; enc < TDI_EncDisp[disp].ListaEncuesta.Length; enc++) { tieneEncuesta = true; if (TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg != null) { for (int preg = 0; preg < TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg.Length; preg++) { arrayIds = new string[TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg.Length]; Encuesta Preguntas = new Encuesta(); Preguntas.Id = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].IdPregunta.ToString(); Preguntas.Pregunta = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].PreguntaDesc; Preguntas.Respuesta = new string[TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas.Length]; //{ "" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdRespuesta + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].RespuestaDescripcion + "|3", "4|No|4" }; if (TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas != null) { for (int resp = 0; resp < TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas.Length; resp++) { Preguntas.Respuesta[resp] = TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdRespuesta + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].RespuestaDescripcion + "|" + TDI_EncDisp[disp].ListaEncuesta[enc].LstPreg[preg].ListaRespuestas[resp].IdSiguientePregunta; } } FillEncuesta.Add(Preguntas); string RespuestasInserta = ""; int cuenta = 0; foreach (string presp in Preguntas.Respuesta) { cuenta++; int totalResp = Preguntas.Respuesta.Length; if (totalResp == cuenta) { RespuestasInserta += presp.ToString(); } else { RespuestasInserta += presp.ToString() + "&"; } } using (SqliteCommand com = connection.CreateCommand()) { String strQuery = "INSERT INTO [DatosEncuesta] ([IdEncuesta],[DescEncuesta],[IdPregunta],[DescPregunta],[Respuestas]) values('" + TDI_EncDisp[disp].ListaEncuesta[enc].IdEncuesta + "','" + TDI_EncDisp[disp].ListaEncuesta[enc].NombreEncuesta + "','" + Preguntas.Id + "','" + Preguntas.Pregunta + "','" + RespuestasInserta + "');"; com.CommandText = strQuery; com.ExecuteNonQuery(); } } } } } } } #endregion } catch { } } catch { } }