/// <summary>
        /// Para asignar un ID a cada apartamento nuevo, esta función lee todo el archivo de DB.txt
        /// Compara los IDs numericos de los inmuebles de iguales condiciones. por ej, de los aptos que estén a la venta.
        /// Toma el mayor y le agrega 1, para asignar el siguiente disponible.
        /// </summary>
        /// <param name="i">Apartamento</param>
        /// <returns></returns>
        public static Apartamento CrearIdA(Apartamento i)
        {
            // El inmueble viene con un ID sin el numerio. Ej: Casa a la Venta, "C-A-" o Apartamento en Alquiler "A-A-".
            String prefijoCasaApartamentoInmueble = i.Id.Split('-')[0];  // De ese id, el primer valor es "C"
            String prefijoAlquilerVentaInmueble   = i.Id.Split('-')[1];  // De ese id, el segundo valor es "A"

            StreamReader reader     = new StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\DB.txt");
            int          idNumerico = 1;

            while (reader.Peek() > -1)
            {
                String   linea         = reader.ReadLine();
                String[] lineaSeparada = linea.Split('|');
                String   prefijoCasaApartamentoLinea = lineaSeparada[0].Split('-')[0];
                String   prefijoAlquilerVentaLinea   = lineaSeparada[0].Split('-')[1];
                Int32    idNumericoLinea             = Convert.ToInt32(lineaSeparada[0].Split('-')[2]);
                // Verifica sólo el id de las lineas que tengan el mismo prefijo que el inmueble.
                if (prefijoCasaApartamentoLinea.Equals(prefijoCasaApartamentoInmueble) && prefijoAlquilerVentaLinea.Equals(prefijoAlquilerVentaInmueble))
                {
                    if (idNumericoLinea > idNumerico)
                    {
                        idNumerico = idNumericoLinea;
                    }
                }
            }
            reader.Close();
            i.Id += idNumerico + 1;
            // Cuando se crea un id nuevo, se crea tambien la carpeta correspondiente para las fotos del inmueble.
            System.IO.Directory.CreateDirectory(System.IO.Directory.GetCurrentDirectory() + "\\img\\" + i.Id);
            return(i);
        }
        /// <summary>
        /// Metodo leer. Lee el archivo "DB.txt" y obtiene los datos necesarios para crear un inmueble
        /// </summary>
        /// <returns></returns>
        public List <Inmueble> Leer()
        {
            ListaInmuebles.Clear();
            StreamReader reader = new StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\DB.txt");

            while (reader.Peek() > -1)
            {
                String   linea                  = reader.ReadLine();
                String[] lineaSeparada          = linea.Split('|');
                String   prefijoAlquilerVenta   = lineaSeparada[0].Split('-')[1];
                String   prefijoCasaApartamento = lineaSeparada[0].Split('-')[0];
                if (prefijoCasaApartamento.Equals("A"))
                {
                    Apartamento i = CrearApartamento(lineaSeparada[0], Convert.ToInt32(lineaSeparada[1]),
                                                     Convert.ToInt32(lineaSeparada[2]), Convert.ToInt32(lineaSeparada[3]), Convert.ToInt32(lineaSeparada[4]),
                                                     Convert.ToInt32(lineaSeparada[5]), lineaSeparada[6], lineaSeparada[7], lineaSeparada[8],
                                                     Convert.ToInt32(lineaSeparada[9]), Convert.ToInt32(lineaSeparada[10]), lineaSeparada[11], lineaSeparada[12],
                                                     Convert.ToInt32(lineaSeparada[13]), Convert.ToInt32(lineaSeparada[14]));
                    ListaInmuebles.Add(i);
                }
                if (prefijoCasaApartamento.Equals("C"))
                {
                    Casa i = CrearCasa(lineaSeparada[0], Convert.ToInt32(lineaSeparada[1]), Convert.ToInt32(lineaSeparada[2]),
                                       Convert.ToInt32(lineaSeparada[3]), Convert.ToInt32(lineaSeparada[4]), Convert.ToInt32(lineaSeparada[5]), lineaSeparada[6],
                                       lineaSeparada[7], lineaSeparada[8], Convert.ToInt32(lineaSeparada[9]), lineaSeparada[10], lineaSeparada[11],
                                       Convert.ToInt32(lineaSeparada[12]), Convert.ToInt32(lineaSeparada[13]));
                    ListaInmuebles.Add(i);
                }
            }
            reader.Close();
            return(ListaInmuebles);
        }
        /// <summary>
        /// Metodo para crear un apartamento
        /// </summary>
        /// <param name="id"></param>
        /// <param name="precio"></param>
        /// <param name="cDormitorios"></param>
        /// <param name="cBaños"></param>
        /// <param name="añoCons"></param>
        /// <param name="metrosEdificados"></param>
        /// <param name="ciudad"></param>
        /// <param name="barrio"></param>
        /// <param name="estado"></param>
        /// <param name="gc"></param>
        /// <param name="cGarages"></param>
        /// <param name="ubicacion"></param>
        /// <param name="comentarios"></param>
        /// <param name="piso"></param>
        /// <param name="plantas"></param>
        /// <returns></returns>
        public Apartamento CrearApartamento(String id, Int32 precio, Int32 cDormitorios, Int32 cBaños, Int32 añoCons, Int32 metrosEdificados,
                                            String ciudad, String barrio, String estado, Int32 gc, Int32 cGarages, String ubicacion, String comentarios, Int32 piso,
                                            Int32 plantas)
        {
            Apartamento i = new Apartamento(id, precio, cDormitorios, cBaños, añoCons, metrosEdificados, ciudad, barrio, estado, gc, cGarages, ubicacion,
                                            comentarios, piso, plantas);

            return(i);
        }
Example #4
0
        /// <summary>
        /// Evento de boton confirmar para agregar un apartamento al sistema
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConfirmarApto_Click(object sender, EventArgs e)
        {
            if (txtPrecioApto.Text == "" || comboBoxDormitoriosApto.SelectedItem.Equals("") || comboBoxBañosApto.SelectedItem.Equals("") ||
                txtAñoApto.Text == "" || txtMetrosApto.Text == "" || txtCiudadApto.Text == "" || txtbarrioApto.Text == "" ||
                comboBoxEstadoApto.SelectedItem.Equals("") || txtGastosApto.Text == "" || comboBoxAptoGarages.SelectedItem.Equals("") ||
                txtUbicacionApto.Text == "" || txtPisoApto.Text == "" || txtPlanta.Text == "" || nomProp.Text == "" ||
                apeProp.Text == "" || ciProp.Text == "" || telProp.Text == "" || mailProp.Text == "" || dirProp.Text == "" || txtComentario.Text == "")
            {
                MessageBox.Show("Faltan llenar campos");
            }
            else
            {
                // Se confecciona el Id, según las operaciones. id = "A-X-000X"
                String id = "A-";
                if (comboBoxVentaAlquilerApto.Text == "Alquiler")
                {
                    id += "A-";
                }
                if (comboBoxVentaAlquilerApto.Text == "Venta")
                {
                    id += "V-";
                }
                if (comboBoxVentaAlquilerApto.Text == "")
                {
                    MessageBox.Show("Falta seleccionar la operación. (Venta o alquiler)");
                }
                // Se crea el apartamento para verificar la validez y existencia de cada parámetro.
                Apartamento inm = m.CrearApartamento(id, Convert.ToInt32(txtPrecioApto.Text), Convert.ToInt32(comboBoxDormitoriosApto.SelectedItem),
                                                     Convert.ToInt32(comboBoxBañosApto.SelectedItem), Convert.ToInt32(txtAñoApto.Text), Convert.ToInt32(txtMetrosApto.Text),
                                                     txtCiudadApto.Text, txtbarrioApto.Text, comboBoxEstadoApto.SelectedItem.ToString(), Convert.ToInt32(txtGastosApto.Text),
                                                     Convert.ToInt32(comboBoxAptoGarages.SelectedItem), txtUbicacionApto.Text, txtComentario.Text, Convert.ToInt32(txtPisoApto.Text),
                                                     Convert.ToInt32(txtPlanta.Text));

                // Se llama al creador de Id, para modificarlo en el inmueble ya existente.
                Apartamento conId = ManejadorInmuebles.CrearIdA(inm);
                // Cuando se crea un Inmueble, se crea la carpeta donde se guardan sus fotos, con el mismo nombre de su ID.

                // Luego la línea que se escribirá en el archivo.
                String linea = conId.Id + "|" + inm.Precio + "|" + inm.CantidadDormitorios + "|" + inm.CantidadBaños + "|" +
                               inm.AñoConstruccion + "|" + inm.MetrosEdificados + "|" + inm.Ciudad + "|" + inm.Barrio + "|" +
                               inm.Estado + "|" + inm.GastosComunes + "|" + inm.CantidadGarages + "|" + inm.Ubicacion + "|" +
                               inm.Comentarios + "|" + inm.Piso + "|" + inm.Plantas;
                m.Guardar(System.IO.Directory.GetCurrentDirectory() + "\\DB.txt", linea);
                // Se agrega el propietario
                Propietario p = new Propietario(nomProp.Text, apeProp.Text, ciProp.Text,
                                                Convert.ToInt32(telProp.Text), mailProp.Text, conId.Id, dirProp.Text);
                String lineaP = nomProp.Text + "|" + apeProp.Text + "|" + ciProp.Text + "|" + Convert.ToInt32(telProp.Text) + "|" +
                                mailProp.Text + "|" + dirProp.Text + "|" + conId.Id;
                MessageBox.Show("Inmueble agregado. \nSeleccionar las imágenes a agregar del inmueble.");
                m.Guardar(System.IO.Directory.GetCurrentDirectory() + "\\Propietarios.txt", lineaP);
                ManejadorImagenes.AgregarImagen(conId);
                // Se llama a la función estática de la clase Limpar, para limpiar los campos.
                Limpiar.BorrarCampos(this, groupBoxApto);
                Limpiar.BorrarCampos(this, groupBoxPropietario);
            }
        }