/// <summary> /// El boton cargar abre un nuevo fileDialog con la función ShowDialog. Luego utilizo la variable previamente declarada /// aux para poner los datos de lista file ahí dentro, y luego reemplazo los de listaFile con los de la fileName elegida /// en la función ShowDialog. Si el nuevo listaFile no se puede cargar, entonces vuelvo a sobrescribir los datos de la /// variable con los que estaban previamente en el aux. Si no hay problema con eso, pregunta al usuario si desea cargar, /// y si acepta, finalmente llama a la función Load de la clase genérica Lista. Si todo funciona bien, llama a CargarLista, /// sino, se muestra un mensaje de error. Si se puede cargar todo, entonces se agregan a la base de datos SQL todas las /// aeronaves cargadas. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnCargar_Click(object sender, EventArgs e) { AccesoDatos accesoDatos = new AccesoDatos(); OpenFileDialog fd = new OpenFileDialog(); fd.ShowDialog(); aux = listaFile; listaFile = ""; listaFile = fd.FileName; if (listaFile != "") { if (MessageBox.Show("Desea Cargar?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { string load = MiLista.Load(listaFile, 50, out MiLista); foreach (Aeronave aeronave in MiLista.Elementos) { if (aeronave is Avion) { accesoDatos.AgregarAvion((Avion)aeronave); } else if (aeronave is Helicoptero) { accesoDatos.AgregarHelicoptero((Helicoptero)aeronave); } else { accesoDatos.AgregarGlobo((Globo)aeronave); } } if (load == "") { CargarLista(); } else { listaFile = aux; MessageBox.Show("Error al cargar el archivo", "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { listaFile = aux; } } else { listaFile = aux; } }
/// <summary> /// El botón guardar intenta validar que las variables de texto no estén vacías, e intenta pasar la variable anio a /// int también. Una vez que está todo correctamente verificado, las variables declaradas al comienzo del FormAgregarModificar /// que corresponden a las de todas las aeronaves, son igualadas a las que el usuario escribió. Luego se verifican las variables /// de texto particulares de cada aeronave (por ejemplo, los rotores de un helicóptero), y una vez que está todo verificado, /// se crea una nueva aeronave del tipo indicado, y la variable BSave a true, para luego poder informar al usuario que están /// los nuevos datos sin guardar. También agrega o modifica a SQL. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { anio = Convert.ToInt32(txtAnio.Text); } catch (Exception) { MessageBox.Show("Escriba un numero en año.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (txtAnio.Text == "" || TXTMarca.Text == "" || TXTModelo.Text == "") { MessageBox.Show("Una o más opciones están vacías.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { marca = TXTMarca.Text; modelo = TXTModelo.Text; velocidadMaxima = trackVelocidad.Value; alturaMaxima = trackAltura.Value; peso = trackPeso.Value; largo = (float)trackLargo.Value / 100; ancho = (float)trackAncho.Value / 100; } if (CMBAeronave.SelectedIndex == 0) { if (txtRotores.Text == "") { MessageBox.Show("Una o más opciones están vacías.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { rotores = Convert.ToInt32(txtRotores.Text); } catch (Exception) { MessageBox.Show("Escriba un numero en rotores.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } tipoHelicoptero = (EHelicoptero)cmbTipo.SelectedIndex; aeronave = new Helicoptero(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho, anio, rotores, tipoHelicoptero); BSave = true; AccesoDatos accesoDatos = new AccesoDatos(); if (modo2 == EModo.Agregar) { accesoDatos.AgregarHelicoptero((Helicoptero)aeronave); } else { accesoDatos.ModificarHelicoptero((Helicoptero)aeronave); } } else if (CMBAeronave.SelectedIndex == 1) { motores = (EMotores)cmbMotor.SelectedIndex; aeronave = new Avion(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho, anio, tipo, motores); BSave = true; AccesoDatos accesoDatos = new AccesoDatos(); if (modo2 == EModo.Agregar) { accesoDatos.AgregarAvion((Avion)aeronave); } else { accesoDatos.ModificarAvion((Avion)aeronave); } } else if (CMBAeronave.SelectedIndex == 2) { if (txtPasajeros.Text == "") { MessageBox.Show("Una o más opciones están vacías.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { pasajeros = Convert.ToInt32(txtPasajeros.Text); } catch (Exception) { MessageBox.Show("Escriba un numero en pasajeros.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } capacidadAire = trackCapacidadAire.Value; aeronave = new Globo(marca, modelo, velocidadMaxima, alturaMaxima, peso, largo, ancho, anio, capacidadAire, pasajeros); AccesoDatos accesoDatos = new AccesoDatos(); if (modo2 == EModo.Agregar) { accesoDatos.AgregarGlobo((Globo)aeronave); } else { accesoDatos.ModificarGlobo((Globo)aeronave); } BSave = true; } this.Close(); }