//Btn BUSCAR private void button1_Click(object sender, EventArgs e) { //Guardamos string del Valor para el criterio string valorCriterio = idTxtCriterio.Text; //Leemos el xml try { fichero = new FileStream(nombreFichero, FileMode.Open); XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); inmobiliaria = (Inmobiliaria)format.Deserialize(fichero); fichero.Close(); for (int i = 0; i < inmobiliaria.ListaPisos1.Count; i++) { //Si el check superficie está clicado y el valor superficie del objeto piso es igual al string del valor criterio insertado en el campo textbox if (checkSuperficie.Checked && inmobiliaria.ListaPisos1[i].Superficie == float.Parse(valorCriterio)) { richTextBox.Text += inmobiliaria.ListaPisos1[i].Mostrar() + "\n"; } else { if (checkOrientacion.Checked && inmobiliaria.ListaPisos1[i].Orientacion.Equals(valorCriterio)) { richTextBox.Text += inmobiliaria.ListaPisos1[i].Mostrar() + "\n"; } else { if (checkPrecio.Checked && inmobiliaria.ListaPisos1[i].Precio == double.Parse(valorCriterio)) { richTextBox.Text += inmobiliaria.ListaPisos1[i].Mostrar() + "\n"; } } } } } catch (Exception ex) { MessageBox.Show("ERROR: " + ex.Message); } }
//Btn GUARDAR private void button1_Click(object sender, EventArgs e) { FileStream fichero = null; Piso piso = null; strId = int.Parse(idTxtId.Text); strDireccion = idTxtDireccion.Text; strSuperficie = float.Parse(idTxtSuperficie.Text); strOrientacion = idTxtOrientacion.Text; strPrecio = double.Parse(idTxtPrecio.Text); try { piso = new Piso(); piso.Id = strId; piso.Direccion = strDireccion; piso.Superficie = strSuperficie; piso.Orientacion = strOrientacion; piso.Precio = strPrecio; if (File.Exists("data.xml")) { //COMO YA EXISTE: //4. Machacamos el fichero con la nueva info //1. Abrimos el fichero fichero = new FileStream("data.xml", FileMode.Open); //Creamos formateador XML para la Deserialización del mismo XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); //2. Volcamos todos los objetos piso en una lista de pisos inmobiliaria = (Inmobiliaria)format.Deserialize(fichero); //Cerramos el fichero fichero.Close(); //3. Abrimos de nuevo el fichero fichero = new FileStream("data.xml", FileMode.Open); inmobiliaria.ListaPisos1.Add(piso); XmlSerializer format2 = new XmlSerializer(inmobiliaria.GetType()); format2.Serialize(fichero, inmobiliaria); fichero.Close(); } else { //COMO NO EXISTE: //1. Creamos el fichero fichero = new FileStream("data.xml", FileMode.Create); inmobiliaria.ListaPisos1.Add(piso); //Creamos formateador XML XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); format.Serialize(fichero, inmobiliaria); fichero.Close(); } MessageBox.Show("¡ Registro Ok !"); } catch (IOException ex) { MessageBox.Show("Error: " + ex.Message); } finally { if (fichero != null) { fichero.Close(); } } }
//Btn AÑADIR private void button2_Click(object sender, EventArgs e) { //Capturamos los strings de los campos del registro strId = int.Parse(idTxtID.Text); strDireccion = idTxtDireccion.Text; strSuperficie = float.Parse(idTxtSuperf.Text); strOrientacion = idComboBox.Text; strPrecio = double.Parse(idTxtPrecio.Text); try { //Asignamos los valores al objeto piso piso = new Piso(); piso.Id = strId; piso.Direccion = strDireccion; piso.Superficie = strSuperficie; piso.Orientacion = strOrientacion; piso.Precio = strPrecio; //Comprobamos la existencia del fichero if (!File.Exists(nombreFichero)) { //Como no existe el fichero: //Creamos el fichero fichero = new FileStream(nombreFichero, FileMode.Create); inmobiliaria.AddPiso(piso); //Añadimos el piso a la lista de pisos //Creamos el formateador XML XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); format.Serialize(fichero, inmobiliaria); //Serializamos el registro de datos fichero.Close(); } else { //Pero... si el fichero ya existe: //1. Abrimos y deserializamos todo el xml fichero = new FileStream(nombreFichero, FileMode.Open); XmlSerializer format = new XmlSerializer(inmobiliaria.GetType()); inmobiliaria = (Inmobiliaria)format.Deserialize(fichero); fichero.Close(); //2. Abrimos y serializamos el nuevo objeto de lista de pisos generado ( objeto que tiene un nuevo registro de piso ) fichero = new FileStream(nombreFichero, FileMode.Create); inmobiliaria.AddPiso(piso); XmlSerializer format2 = new XmlSerializer(inmobiliaria.GetType()); format2.Serialize(fichero, inmobiliaria); fichero.Close(); } MessageBox.Show("¡ Registro Ok !"); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } finally { if (fichero != null) { fichero.Close(); } } }