public string Xmls_a_objetos(string xmls) { String json = ""; XmlDocument reader = new XmlDocument(); reader.LoadXml(xmls); XmlNodeList paginas; XmlNodeList secciones; XmlNodeList parrafos; XmlNodeList anexos; Cuestionarioxml cuestxml = new Cuestionarioxml(); paginas = reader.GetElementsByTagName("pagina"); anexos = reader.GetElementsByTagName("anexo"); cuestxml.paginas = new paginaxml[paginas.Count]; cuestxml.los_anexos = new List <anexos>(); /* cuestxml.los_anexos = new anexos[anexos.Count]; * for (int a = 0; a < anexos.Count; a++) { * cuestxml.los_anexos[a] = new anexos(); * cuestxml.los_anexos[a].condicion = (XmlElement)((XmlElement)anexos[a]).GetElementsByTagName("condicion")[0]; * cuestxml.los_anexos[a].descrAnexo = ((XmlElement)anexos[a]).GetAttribute("descrAnexo"); * cuestxml.los_anexos[a].iDAnexo = ((XmlElement)anexos[a]).GetAttribute("iDAnexo"); * }*/ for (int pag = 0; pag < paginas.Count; pag++) { paginaxml paginatemp = new paginaxml(); secciones = ((XmlElement)paginas[pag]).GetElementsByTagName("seccion"); paginatemp.secciones = new seccionxml[secciones.Count]; if (((XmlElement)paginas[pag]).FirstChild.Name == "condicion") { paginatemp.variablesc.AddRange( variables_en_condicional(((XmlElement)secciones[0]))//mete todos los resultados ); paginatemp.condicion = (((XmlElement)((XmlElement)paginas[pag]).FirstChild)); } paginatemp.numero = Int32.Parse(((XmlElement)paginas[pag]).GetAttribute("numero")); for (int secc = 0; secc < secciones.Count; secc++) //for de seccion { seccionxml secciontemporal = new seccionxml(); parrafos = ((XmlElement)secciones[secc]).GetElementsByTagName("parrafo"); secciontemporal.parrafoo = new parrafoxml[parrafos.Count]; if (((XmlElement)secciones[secc]).FirstChild.Name == "condicion") { secciontemporal.condicion = ((XmlElement)((XmlElement)secciones[secc]).FirstChild); //meter lacondicion } for (int parr = 0; parr < parrafos.Count; parr++) { parrafoxml parrafotemp = new parrafoxml(); XmlNodeList preguntas = ((XmlElement)parrafos[parr]).GetElementsByTagName("pregunta"); parrafotemp.preguntas = new string[preguntas.Count]; if (((XmlElement)parrafos[parr]).FirstChild.Name == "condicion") { parrafotemp.condicion = ((XmlElement)((XmlElement)parrafos[parr]).FirstChild); } for (int pre = 0; pre < preguntas.Count; pre++) { parrafotemp.preguntas[pre] = ((XmlElement)preguntas[pre]).GetAttribute("variable"); } secciontemporal.parrafoo[parr] = parrafotemp; } anexos = ((XmlElement)secciones[secc]).GetElementsByTagName("anexos"); for (int a = 0; a < anexos.Count; a++) { XmlNodeList anexo = ((XmlElement)secciones[secc]).GetElementsByTagName("anexo"); for (int aa = 0; aa < anexo.Count; aa++) { anexos tempu = new anexos(); tempu.condicion = (XmlElement)((XmlElement)anexo[aa]).GetElementsByTagName("condicion")[0]; tempu.descrAnexo = ((XmlElement)anexo[aa]).GetAttribute("descrAnexo"); tempu.iDAnexo = ((XmlElement)anexo[aa]).GetAttribute("iDAnexo"); tempu.anexo_url = "#{motorHTML.cuestionario.pagina[" + pag + "].seccion[" + secc + "].anexos[" + a + "].anexo[" + aa + "].archivo}"; cuestxml.los_anexos.Add(tempu); } } paginatemp.secciones[secc] = secciontemporal; } //for de secciones cuestxml.paginas[pag] = paginatemp; } //for de paginas //anexosxml = JsonConvert.SerializeObject(cuestxml.los_anexos); //cuestxml.los_anexos = null; json = JsonConvert.SerializeObject(cuestxml); return(json); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Create your application here SetContentView(Resource.Layout.Cuestionario); opciones = GetSharedPreferences(Legalproprefs, 0); if (opciones.GetString("nm_opr", "").Length == 0) { Intent intent = new Intent(this.ApplicationContext, typeof(MainActivity)); StartActivity(intent); } anexos = true; anexo_seleccionado = 0; db = new sqlite_database_movements(); id_formato = Intent.GetIntExtra("id_formato", 0); lista = new List <lapregunta>(); if (id_formato == 0) { FindViewById <ImageView>(Resource.Id.g_nube).Visibility = ViewStates.Gone; FindViewById <TextView>(Resource.Id.terminado).Visibility = ViewStates.Gone; modelo = Intent.GetStringExtra("modelo") ?? ""; id_formato = Intent.GetIntExtra("id_formato", 0); id_modelo = Intent.GetIntExtra("id_modelo", 0); Cuestionarios actual = db.get_cuestionarioS(id_modelo, opciones.GetInt("instancia", 0), opciones.GetString("db", "")); imagen = FindViewById <ImageView>(Resource.Id.siguiente); imagen.Click += (s, e) => { if (anexos) { ListView listaaa = FindViewById <ListView>(Resource.Id.listaa); listaaa.Visibility = ViewStates.Visible; FindViewById <ListView>(Resource.Id.listam).Visibility = ViewStates.Gone; anexos = false; } else { ListView listaaa = FindViewById <ListView>(Resource.Id.listaa); listaaa.Visibility = ViewStates.Gone; FindViewById <ListView>(Resource.Id.listam).Visibility = ViewStates.Visible; anexos = true; } }; imagen = FindViewById <ImageView>(Resource.Id.guardar); imagen.Click += (s, e) => { Guardados guardar = new Guardados(); var builder = new AlertDialog.Builder(this); builder.SetTitle("Guardar en local"); LayoutInflater inflater = LayoutInflater.From(this); View dialogview = inflater.Inflate(Resource.Layout.lista2, null); TextView titulo; EditText editText = dialogview.FindViewById <EditText>(Resource.Id.resultado); editText.Text = ""; editText.SetTextColor(Color.White); editText.Focusable = true; editText.FocusableInTouchMode = true; dialogview.FindViewById <LinearLayout>(Resource.Id.templatt).SetBackgroundColor(Color.Transparent); titulo = dialogview.FindViewById <TextView>(Resource.Id.titulo); titulo.Text = "Nombre del tramite"; titulo.SetTextColor(Android.Graphics.Color.White); builder.SetView(dialogview); builder.SetPositiveButton("Aceptar", (sender2, args) => { if (editText.Text.Length == 0) { guardar.nombre = "Nuevo " + modelo; } else { guardar.nombre = modelo + " " + editText.Text; } guardar.guardado = 0; guardar.usuario = opciones.GetInt("id_opr", 0); guardar.xml = JsonConvert.SerializeObject(cuestionarioactual);//se guarda el cuestionario guardar.id_modelo = id_modelo; guardar.nm_modelo = modelo; guardar.container = "LegalPro Produccion/" + opciones.GetString("nm_str", "") + "/" + opciones.GetInt("instancia", 0) + "/"; guardar.containe2r = "LegalPro Produccion/"; guardar.id_instancia = opciones.GetInt("instancia", 0); WebReference1.preguntaDTO[] preguntas = new WebReference1.preguntaDTO[lista.Count]; for (int y = 0; y < preguntas.Length; y++) { preguntas[y] = lista[y].get_pregunta(); } guardar.preguntas = JsonConvert.SerializeObject(preguntas); db.insert_guardado(guardar, opciones.GetString("db", "")); Intent intent = new Intent(this.ApplicationContext, typeof(Activity1)); StartActivity(intent); Toast.MakeText(this.ApplicationContext, "Guardado local revisa en VER lISTA CUESTIONARIOS, para terminarlo", ToastLength.Long).Show(); click = true; }); builder.SetNegativeButton("Cancelar", (sender2, args) => { click = true; }); builder.Show(); }; if (modelo.Length > 0) { string json = opciones.GetString(modelo, ""); WebReference1.preguntaDTO[] preguntas = JsonConvert.DeserializeObject <WebReference1.preguntaDTO[]>(json); for (int y = 0; y < preguntas.Length; y++) { lapregunta temp = new lapregunta(); temp.pos_list = y; temp.set_pregunta(preguntas[y]); lista.Add(temp); } //lista = preguntas.OfType<WebReference1.preguntaDTO>().ToList(); cuestionarioactual = JsonConvert.DeserializeObject <Cuestionarioxml>(actual.xml); //cuestionarioactual.los_anexos= JsonConvert.DeserializeObject<List<anexos>>(actual.anexos); cuestionarioactual.variables = new Dictionary <string, string>(); for (int xx = 0; xx < preguntas.Length; xx++) { if (preguntas[xx].preguntaCerrada != null) { cuestionarioactual.variables[preguntas[xx].variable] = "1"; } else { cuestionarioactual.variables[preguntas[xx].variable] = ""; } } //variables del cuestionario listas para modificarse //fin del caso nuevo } } else { g = db.get_guardado(id_formato, opciones.GetInt("instancia", 0), opciones.GetString("db", "")); modelo = g.nm_modelo; int id_modelo = g.id_modelo; cuestionarioactual = JsonConvert.DeserializeObject <Cuestionarioxml>(g.xml); //lista = JsonConvert.DeserializeObject <List<lapregunta>>(g.preguntas); WebReference1.preguntaDTO[] preguntas = JsonConvert.DeserializeObject <WebReference1.preguntaDTO[]>(g.preguntas); for (int y = 0; y < preguntas.Length; y++) { lapregunta temp = new lapregunta(); temp.pos_list = y; temp.set_pregunta(preguntas[y]); lista.Add(temp); } imagen = FindViewById <ImageView>(Resource.Id.siguiente); imagen.Click += (s, e) => { if (anexos) { ListView listaaa = FindViewById <ListView>(Resource.Id.listaa);//oculta int cx = (listaaa.Left + listaaa.Right) / 2; int cy = (listaaa.Top + listaaa.Bottom) / 2; int finalRadius = Math.Max(listaaa.Width, listaaa.Height); Android.Animation.Animator anim = ViewAnimationUtils.CreateCircularReveal(listaaa, cx, cy, 0, finalRadius); listaaa.Visibility = ViewStates.Visible; anim.Start(); FindViewById <ListView>(Resource.Id.listam).Visibility = ViewStates.Gone; anexos = false; } else { ListView listaaa = FindViewById <ListView>(Resource.Id.listam);//oculta int cx = (listaaa.Left + listaaa.Right) / 2; int cy = (listaaa.Top + listaaa.Bottom) / 2; int finalRadius = Math.Max(listaaa.Width, listaaa.Height); Android.Animation.Animator anim = ViewAnimationUtils.CreateCircularReveal(listaaa, cx, cy, 0, finalRadius); listaaa.Visibility = ViewStates.Visible; anim.Start(); FindViewById <ListView>(Resource.Id.listaa).Visibility = ViewStates.Gone;; anexos = true; } }; imagen = FindViewById <ImageView>(Resource.Id.guardar); imagen.Click += (s, e) => { //Guardados guardar = new Guardados(); var builder = new AlertDialog.Builder(this); builder.SetTitle("Guardar en local"); LayoutInflater inflater = LayoutInflater.From(this); View dialogview = inflater.Inflate(Resource.Layout.lista2, null); TextView titulo; EditText editText = dialogview.FindViewById <EditText>(Resource.Id.resultado); editText.Text = ""; editText.SetTextColor(Android.Graphics.Color.White); editText.Focusable = false; editText.FocusableInTouchMode = false; dialogview.FindViewById <LinearLayout>(Resource.Id.templatt).SetBackgroundColor(Android.Graphics.Color.Transparent); titulo = dialogview.FindViewById <TextView>(Resource.Id.titulo); titulo.Text = "El archivo se sobreescribira"; titulo.SetTextColor(Android.Graphics.Color.White); builder.SetView(dialogview); builder.SetPositiveButton("Aceptar", (sender2, args) => { g.xml = JsonConvert.SerializeObject(cuestionarioactual); WebReference1.preguntaDTO[] p = new WebReference1.preguntaDTO[lista.Count]; for (int y = 0; y < p.Length; y++) { p[y] = lista[y].get_pregunta(); } g.preguntas = JsonConvert.SerializeObject(p); if (db.update_guardado(g, opciones.GetString("db", "")) > 0) { Toast.MakeText(this.ApplicationContext, "Guardado", ToastLength.Long).Show(); } else { Toast.MakeText(this.ApplicationContext, "Error al guardar, intentelo otra vez", ToastLength.Long).Show(); } }); builder.SetNegativeButton("Cancelar", (sender2, args) => { click = true; }); builder.Show(); }; } click = true; filtrar_lista(); pintar_lista(); var btnCamera = FindViewById <Button>(Resource.Id.buttonc); imageviewfoto = FindViewById <ImageView>(Resource.Id.imageViewfoto); btnCamera.Click += btnCamera_click; btnCamera = FindViewById <Button>(Resource.Id.buttona); btnCamera.Click += btnCamera_aceptar; btnCamera = FindViewById <Button>(Resource.Id.buttonx); btnCamera.Click += btnCamera_cancelar; FindViewById <ImageView>(Resource.Id.g_nube).Click += btnfinalizar; FindViewById <Button>(Resource.Id.buttonf).Click += btnfile_click; //btnCamera.Click += btnfinalizar; FindViewById <ImageView>(Resource.Id.imageView4).Click += (sender, e) => { var builder = new AlertDialog.Builder(this); builder.SetTitle("Aviso"); builder.SetMessage("Se cerrara la sesión ¿está seguro?"); builder.SetPositiveButton("Aceptar", (sender2, args) => { Toast.MakeText(this.ApplicationContext, "Adios", ToastLength.Long).Show(); //resultado.Text = respuesta.INSTANCIA.ID_INSTANCIA + " Operador: "+respuesta.id_Opr+" "+respuesta.nm_Oper; ISharedPreferencesEditor editor = opciones.Edit(); editor.PutString("nm_opr", ""); editor.PutInt("id_opr", 0); editor.PutString("nm_str", ""); editor.PutInt("instancia", 0); editor.Commit(); StartActivity(typeof(MainActivity)); }); builder.SetNegativeButton("Cancelar", (sender2, args) => { }); builder.Show(); }; }