Advertisement
Fhernd

Silla.cs

Jul 2nd, 2015
4,124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.95 KB | None | 0 0
  1. // ===++===
  2. //
  3. //    OrtizOL - xCSw
  4. //
  5. //  Proyecto: Cupi2.NET
  6. //
  7. // ===--===
  8. /*============================================================
  9. //
  10. // Clase(s): Silla.
  11. //
  12. // Propósito: Implementar y representar la entidad `Silla`
  13. // del modelo del mundo del problema (dominio).
  14. //
  15. // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/avion/visualizacion-codigo/silla
  16. //
  17. ============================================================*/
  18.  
  19. using System;
  20.  
  21. namespace ElAvión.Modelo
  22. {
  23.     /// <summary>
  24.     /// Representa la clase `Silla` del mundo del problema.
  25.     /// </summary>
  26.     public class Silla
  27.     {
  28.         #region Campos
  29.         /// <summary>
  30.         /// Clase (Ejecutiva o Económica) de esta silla.
  31.         /// </summary>
  32.         private Clase clase;
  33.         /// <summary>
  34.         /// Número de la silla.
  35.         /// </summary>
  36.         private int numero;
  37.         /// <summary>
  38.         /// Pasajero asignado a esta silla.
  39.         /// </summary>
  40.         private Pasajero pasajero;
  41.         /// <summary>
  42.         /// Ubicación de la silla (`UbicacionSilla.Ventana`, `UbicacionSilla.Centro` (Sólo `Clase.Economica`), y `UbicacionSilla.Pasillo`).
  43.         /// </summary>
  44.         private UbicacionSilla ubicacion;
  45.         #endregion
  46.  
  47.         #region Propiedades
  48.         /// <summary>
  49.         /// Recupera o modifica la clase asignada a esta silla.
  50.         /// </summary>
  51.         public Clase Clase
  52.         {
  53.             get
  54.             {
  55.                 return clase;
  56.             }
  57.             set
  58.             {
  59.                 clase = value;
  60.             }
  61.         }
  62.         /// <summary>
  63.         /// Recupera o modifica el número asignado de esta silla.
  64.         /// </summary>
  65.         public int Numero
  66.         {
  67.             get
  68.             {
  69.                 return numero;
  70.             }
  71.             set
  72.             {
  73.                 numero = value;
  74.             }
  75.         }
  76.         /// <summary>
  77.         /// Recupera o modifica el pasajero asignado a esta silla.
  78.         /// </summary>
  79.         public Pasajero Pasajero
  80.         {
  81.             get
  82.             {
  83.                 return pasajero;
  84.             }
  85.             set
  86.             {
  87.                 pasajero = value;
  88.             }
  89.         }
  90.         /// <summary>
  91.         /// Recupera o modifica la ubicación de la silla.
  92.         /// </summary>
  93.         public UbicacionSilla Ubicacion
  94.         {
  95.             get
  96.             {
  97.                 return ubicacion;
  98.             }
  99.             set
  100.             {
  101.                 ubicacion = (UbicacionSilla)value;
  102.             }
  103.         }
  104.         #endregion
  105.         #region Constructores
  106.         /// <summary>
  107.         /// Crea una nueva `Silla`.
  108.         /// </summary>
  109.         /// <param name="numero">Número de la silla.</param>
  110.         /// <param name="clase">Clase de la silla. (`Clase.Ejecutiva` o `Clase.Economica`.)</param>
  111.         /// <param name="ubicacion">Ubicación de la silla que desea tomar el pasajero (`UbicacionSilla.Ventana`, `UbicacionSilla.Centro` (Sólo `Clase.Economica`), y `UbicacionSilla.Pasillo`.</param>
  112.         public Silla(int numero, Clase clase, UbicacionSilla ubicacion)
  113.         {
  114.             this.numero = numero;
  115.             this.clase = clase;
  116.             pasajero = null;
  117.             this.ubicacion = ubicacion;
  118.         }
  119.         #endregion
  120.  
  121.         #region Métodos
  122.         /// <summary>
  123.         /// Asigna esta silla a un pasajero.
  124.         /// </summary>
  125.         /// <param name="pasajero">Pasajero a asignar esta silla.</param>
  126.         public void AsignarAPasajero(Pasajero pasajero)
  127.         {
  128.             this.pasajero = pasajero;
  129.         }
  130.         /// <summary>
  131.         /// Desasigna esta silla.
  132.         /// </summary>
  133.         public void DesasignarSilla()
  134.         {
  135.             pasajero = null;
  136.         }
  137.         #endregion
  138.         /// <summary>
  139.         /// Determina si esta silla está asignada o no.
  140.         /// </summary>
  141.         /// <returns>`true` si la silla está asignada, `false` en caso contrario.</returns>
  142.         public bool SillaAsignada()
  143.         {
  144.             if (pasajero == null)
  145.             {
  146.                 return false;
  147.             }
  148.             else
  149.             {
  150.                 return true;
  151.             }
  152.         }
  153.         /// <summary>
  154.         /// Determina si esta silla está asignada a un determinado pasajero.
  155.         /// </summary>
  156.         /// <param name="pasajero">Pasajero a validar si ha tomado esta silla.</param>
  157.         /// <returns>`true` si la silla ha asignada a este pasajero; `false` en caso contrario.</returns>
  158.         public bool SillaAsignadaPasajero(Pasajero pasajero)
  159.         {
  160.             if (this.pasajero == null)
  161.             {
  162.                 return false;
  163.             }
  164.             else if (this.pasajero.EsIgual(pasajero))
  165.             {
  166.                 return true;
  167.             }
  168.             else
  169.             {
  170.                 return false;
  171.             }
  172.         }
  173.     }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement