Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created July 2, 2015 16:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/549da3036eca4142e6a3 to your computer and use it in GitHub Desktop.
Save Fhernd/549da3036eca4142e6a3 to your computer and use it in GitHub Desktop.
Clase `Silla`.
// ===++===
//
// OrtizOL - xCSw
//
// Proyecto: Cupi2.NET
//
// ===--===
/*============================================================
//
// Clase(s): Silla.
//
// Propósito: Implementar y representar la entidad `Silla`
// del modelo del mundo del problema (dominio).
//
// Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/avion/visualizacion-codigo/silla
//
============================================================*/
using System;
namespace ElAvión.Modelo
{
/// <summary>
/// Representa la clase `Silla` del mundo del problema.
/// </summary>
public class Silla
{
#region Campos
/// <summary>
/// Clase (Ejecutiva o Económica) de esta silla.
/// </summary>
private Clase clase;
/// <summary>
/// Número de la silla.
/// </summary>
private int numero;
/// <summary>
/// Pasajero asignado a esta silla.
/// </summary>
private Pasajero pasajero;
/// <summary>
/// Ubicación de la silla (`UbicacionSilla.Ventana`, `UbicacionSilla.Centro` (Sólo `Clase.Economica`), y `UbicacionSilla.Pasillo`).
/// </summary>
private UbicacionSilla ubicacion;
#endregion
#region Propiedades
/// <summary>
/// Recupera o modifica la clase asignada a esta silla.
/// </summary>
public Clase Clase
{
get
{
return clase;
}
set
{
clase = value;
}
}
/// <summary>
/// Recupera o modifica el número asignado de esta silla.
/// </summary>
public int Numero
{
get
{
return numero;
}
set
{
numero = value;
}
}
/// <summary>
/// Recupera o modifica el pasajero asignado a esta silla.
/// </summary>
public Pasajero Pasajero
{
get
{
return pasajero;
}
set
{
pasajero = value;
}
}
/// <summary>
/// Recupera o modifica la ubicación de la silla.
/// </summary>
public UbicacionSilla Ubicacion
{
get
{
return ubicacion;
}
set
{
ubicacion = (UbicacionSilla)value;
}
}
#endregion
#region Constructores
/// <summary>
/// Crea una nueva `Silla`.
/// </summary>
/// <param name="numero">Número de la silla.</param>
/// <param name="clase">Clase de la silla. (`Clase.Ejecutiva` o `Clase.Economica`.)</param>
/// <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>
public Silla(int numero, Clase clase, UbicacionSilla ubicacion)
{
this.numero = numero;
this.clase = clase;
pasajero = null;
this.ubicacion = ubicacion;
}
#endregion
#region Métodos
/// <summary>
/// Asigna esta silla a un pasajero.
/// </summary>
/// <param name="pasajero">Pasajero a asignar esta silla.</param>
public void AsignarAPasajero(Pasajero pasajero)
{
this.pasajero = pasajero;
}
/// <summary>
/// Desasigna esta silla.
/// </summary>
public void DesasignarSilla()
{
pasajero = null;
}
#endregion
/// <summary>
/// Determina si esta silla está asignada o no.
/// </summary>
/// <returns>`true` si la silla está asignada, `false` en caso contrario.</returns>
public bool SillaAsignada()
{
if (pasajero == null)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// Determina si esta silla está asignada a un determinado pasajero.
/// </summary>
/// <param name="pasajero">Pasajero a validar si ha tomado esta silla.</param>
/// <returns>`true` si la silla ha asignada a este pasajero; `false` en caso contrario.</returns>
public bool SillaAsignadaPasajero(Pasajero pasajero)
{
if (this.pasajero == null)
{
return false;
}
else if (this.pasajero.EsIgual(pasajero))
{
return true;
}
else
{
return false;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment