Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // ===++===
  2. //
  3. //    OrtizOL - xCSw
  4. //
  5. //  Proyecto: Cupi2.NET
  6. //
  7. // ===--===
  8. /*============================================================
  9. //
  10. // Clase(s): DialogoRegistrarPasajero.
  11. //
  12. // Propósito: Represntar diálogo de registro de pasajero.
  13. //
  14. // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/avion/visualizacion-codigo/dialogoasignacion
  15. //
  16. ============================================================*/
  17. using System;
  18. using System.Collections.Generic;
  19. using System.ComponentModel;
  20. using System.Data;
  21. using System.Drawing;
  22. using System.Linq;
  23. using System.Text;
  24. using System.Threading.Tasks;
  25. using System.Windows.Forms;
  26. using ElAvión.Modelo;
  27.  
  28. namespace ElAvión.GUI
  29. {
  30.     /// <summary>
  31.     /// Clase que representa el diálogo de captura del registro del pasajero.
  32.     /// </summary>
  33.     public partial class DialogoRegistrarPasajero : Form
  34.     {
  35.         #region Componentes
  36.         /// <summary>
  37.         /// Instancia de referencia de la interfaz de usuario principal.
  38.         /// </summary>
  39.         private Principal ventanaPrincipal;
  40.         #endregion
  41.  
  42.         #region Campos
  43.         /// <summary>
  44.         /// Instancia de referencia del objeto `Avion` principal.
  45.         /// </summary>
  46.         private Avion m_avion;
  47.         #endregion
  48.  
  49.         #region Constructores
  50.         /// <summary>
  51.         /// Crea un nuevo diálogo de captura del registro de un pasajero.
  52.         /// </summary>
  53.         /// <param name="principal">Referencia de la interfaz de usuario principal.</param>
  54.         /// <param name="avion">Referencia al objeto `Avión` principal.</param>
  55.         public DialogoRegistrarPasajero(Principal principal, Avion avion)
  56.         {
  57.             InitializeComponent();
  58.  
  59.             this.m_avion = avion;
  60.  
  61.             this.ventanaPrincipal = principal;
  62.         }
  63.         #endregion
  64.  
  65.         #region Eventos.
  66.         /// <summary>
  67.         /// Activa la validación e ingreso de los datos del passajero.
  68.         /// </summary>
  69.         /// <param name="sender">Generador del evento.</param>
  70.         /// <param name="e">Argumentos del evento.</param>
  71.         private void txtAceptar_Click(object sender, EventArgs e)
  72.         {
  73.             Int64 numeroCedula;
  74.  
  75.             if (Int64.TryParse(txtCedula.Text, out numeroCedula))
  76.             {
  77.                 if(txtNombre.Text.Length > 0)
  78.                 {
  79.                     Pasajero pasajero = new Pasajero(numeroCedula, txtNombre.Text);
  80.  
  81.                     Silla sillaUsada = m_avion.BuscarPasajero(pasajero);
  82.  
  83.                     // Valida que el pasajero no ha ocupado una silla:
  84.                     if (sillaUsada != null)
  85.                     {
  86.                         MessageBox.Show(this, "El pasajero ya tiene una silla asignada.", "Error Asignación Pasajero", MessageBoxButtons.OK, MessageBoxIcon.Error);
  87.                     }
  88.                     else
  89.                     {
  90.                         Clase clase = (Clase)cbxClase.SelectedIndex + 1;
  91.                         UbicacionSilla ubicacion = 0;
  92.                         //***
  93.                         if (clase == Clase.Economica)
  94.                         {
  95.                             switch(cbxUbicacion.SelectedIndex)
  96.                             {
  97.                                 case 0:
  98.                                     ubicacion = UbicacionSilla.Ventana;
  99.                                     break;
  100.                                 case 1:
  101.                                     ubicacion = UbicacionSilla.Central;
  102.                                     break;
  103.                                 case 2:
  104.                                     ubicacion = UbicacionSilla.Pasillo;
  105.                                     break;
  106.  
  107.                             }
  108.                         }
  109.                         else
  110.                         {
  111.                             switch(cbxUbicacion.SelectedIndex)
  112.                             {
  113.                                 case 0:
  114.                                     ubicacion = UbicacionSilla.Ventana;
  115.                                     break;
  116.                                 case 1:
  117.                                     ubicacion = UbicacionSilla.Pasillo;
  118.                                     break;
  119.                             }
  120.                         }
  121.                        
  122.                         Silla silla = m_avion.AsignarSilla(clase, ubicacion, pasajero);
  123.  
  124.                         if (silla == null)
  125.                         {
  126.                             MessageBox.Show(this, "No hay sillas con dichas características.", "Error Número Cédula", MessageBoxButtons.OK, MessageBoxIcon.Error);
  127.                         }
  128.                         else
  129.                         {
  130.                             ventanaPrincipal.Actualizar();
  131.                             this.DialogResult = System.Windows.Forms.DialogResult.OK;
  132.                         }
  133.                     }
  134.                 }
  135.                 else
  136.                 {
  137.                     MessageBox.Show(this, "Introduzca su nombre.", "Error Nombre", MessageBoxButtons.OK, MessageBoxIcon.Error);
  138.                 }
  139.             }
  140.             else
  141.             {
  142.                 MessageBox.Show(this, "El valor de cédula no es válido. Intente de nuevo.", "Error Número Cédula", MessageBoxButtons.OK, MessageBoxIcon.Error);
  143.             }
  144.         }
  145.  
  146.         /// <summary>
  147.         /// Activa la cancelación del registro del pasajero.
  148.         /// </summary>
  149.         /// <param name="sender">Generador del evento.</param>
  150.         /// <param name="e">Argumentos del evento.</param>
  151.         private void txtCancelar_Click(object sender, EventArgs e)
  152.         {
  153.             this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
  154.         }
  155.         /// <summary>
  156.         /// Detecta cambios en la selección de la clase y la adaptación del contenido del tipo de silla.
  157.         /// </summary>
  158.         /// <param name="sender">Generador del evento.</param>
  159.         /// <param name="e">Argumentos del evento.</param>
  160.         private void cbxClase_SelectedIndexChanged(object sender, EventArgs e)
  161.         {
  162.             cbxUbicacion.Enabled = true;
  163.  
  164.             if (cbxClase.SelectedIndex == 1)
  165.             {
  166.                 cbxUbicacion.Items.Clear();
  167.                 cbxUbicacion.Items.Add("Ventana");
  168.                 cbxUbicacion.Items.Add("Pasillo");
  169.             }
  170.             else if (cbxClase.SelectedIndex == 0)
  171.             {
  172.                 cbxUbicacion.Items.Clear();
  173.                 cbxUbicacion.Items.Add("Ventana");
  174.                 cbxUbicacion.Items.Add("Centro");
  175.                 cbxUbicacion.Items.Add("Pasillo");
  176.  
  177.             }
  178.         }
  179.         #endregion
  180.     }
  181. }