Last active
August 29, 2015 14:24
-
-
Save Fhernd/ec96990d75a9d069a38b to your computer and use it in GitHub Desktop.
Diálogo `DialogoRegistrarPasajero`.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// OrtizOL - xCSw | |
// | |
// Proyecto: Cupi2.NET | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase(s): DialogoRegistrarPasajero. | |
// | |
// Propósito: Represntar diálogo de registro de pasajero. | |
// | |
// Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/avion/visualizacion-codigo/dialogoasignacion | |
// | |
============================================================*/ | |
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Windows.Forms; | |
using ElAvión.Modelo; | |
namespace ElAvión.GUI | |
{ | |
/// <summary> | |
/// Clase que representa el diálogo de captura del registro del pasajero. | |
/// </summary> | |
public partial class DialogoRegistrarPasajero : Form | |
{ | |
#region Componentes | |
/// <summary> | |
/// Instancia de referencia de la interfaz de usuario principal. | |
/// </summary> | |
private Principal ventanaPrincipal; | |
#endregion | |
#region Campos | |
/// <summary> | |
/// Instancia de referencia del objeto `Avion` principal. | |
/// </summary> | |
private Avion m_avion; | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea un nuevo diálogo de captura del registro de un pasajero. | |
/// </summary> | |
/// <param name="principal">Referencia de la interfaz de usuario principal.</param> | |
/// <param name="avion">Referencia al objeto `Avión` principal.</param> | |
public DialogoRegistrarPasajero(Principal principal, Avion avion) | |
{ | |
InitializeComponent(); | |
this.m_avion = avion; | |
this.ventanaPrincipal = principal; | |
} | |
#endregion | |
#region Eventos. | |
/// <summary> | |
/// Activa la validación e ingreso de los datos del passajero. | |
/// </summary> | |
/// <param name="sender">Generador del evento.</param> | |
/// <param name="e">Argumentos del evento.</param> | |
private void txtAceptar_Click(object sender, EventArgs e) | |
{ | |
Int64 numeroCedula; | |
if (Int64.TryParse(txtCedula.Text, out numeroCedula)) | |
{ | |
if(txtNombre.Text.Length > 0) | |
{ | |
Pasajero pasajero = new Pasajero(numeroCedula, txtNombre.Text); | |
Silla sillaUsada = m_avion.BuscarPasajero(pasajero); | |
// Valida que el pasajero no ha ocupado una silla: | |
if (sillaUsada != null) | |
{ | |
MessageBox.Show(this, "El pasajero ya tiene una silla asignada.", "Error Asignación Pasajero", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
} | |
else | |
{ | |
Clase clase = (Clase)cbxClase.SelectedIndex + 1; | |
UbicacionSilla ubicacion = 0; | |
//*** | |
if (clase == Clase.Economica) | |
{ | |
switch(cbxUbicacion.SelectedIndex) | |
{ | |
case 0: | |
ubicacion = UbicacionSilla.Ventana; | |
break; | |
case 1: | |
ubicacion = UbicacionSilla.Central; | |
break; | |
case 2: | |
ubicacion = UbicacionSilla.Pasillo; | |
break; | |
} | |
} | |
else | |
{ | |
switch(cbxUbicacion.SelectedIndex) | |
{ | |
case 0: | |
ubicacion = UbicacionSilla.Ventana; | |
break; | |
case 1: | |
ubicacion = UbicacionSilla.Pasillo; | |
break; | |
} | |
} | |
Silla silla = m_avion.AsignarSilla(clase, ubicacion, pasajero); | |
if (silla == null) | |
{ | |
MessageBox.Show(this, "No hay sillas con dichas características.", "Error Número Cédula", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
} | |
else | |
{ | |
ventanaPrincipal.Actualizar(); | |
this.DialogResult = System.Windows.Forms.DialogResult.OK; | |
} | |
} | |
} | |
else | |
{ | |
MessageBox.Show(this, "Introduzca su nombre.", "Error Nombre", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
} | |
} | |
else | |
{ | |
MessageBox.Show(this, "El valor de cédula no es válido. Intente de nuevo.", "Error Número Cédula", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
} | |
} | |
/// <summary> | |
/// Activa la cancelación del registro del pasajero. | |
/// </summary> | |
/// <param name="sender">Generador del evento.</param> | |
/// <param name="e">Argumentos del evento.</param> | |
private void txtCancelar_Click(object sender, EventArgs e) | |
{ | |
this.DialogResult = System.Windows.Forms.DialogResult.Cancel; | |
} | |
/// <summary> | |
/// Detecta cambios en la selección de la clase y la adaptación del contenido del tipo de silla. | |
/// </summary> | |
/// <param name="sender">Generador del evento.</param> | |
/// <param name="e">Argumentos del evento.</param> | |
private void cbxClase_SelectedIndexChanged(object sender, EventArgs e) | |
{ | |
cbxUbicacion.Enabled = true; | |
if (cbxClase.SelectedIndex == 1) | |
{ | |
cbxUbicacion.Items.Clear(); | |
cbxUbicacion.Items.Add("Ventana"); | |
cbxUbicacion.Items.Add("Pasillo"); | |
} | |
else if (cbxClase.SelectedIndex == 0) | |
{ | |
cbxUbicacion.Items.Clear(); | |
cbxUbicacion.Items.Add("Ventana"); | |
cbxUbicacion.Items.Add("Centro"); | |
cbxUbicacion.Items.Add("Pasillo"); | |
} | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment