Created
June 8, 2014 22:21
-
-
Save Fhernd/d94c6b58cdd531c56919 to your computer and use it in GitHub Desktop.
Representa a la entidad `Candidato`.
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 | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase: Candidato.cs | |
// | |
// Original en: http://goo.gl/sZz9gI | |
// | |
// Propósito: Modelar la entidad `Candidato`. | |
// | |
============================================================*/ | |
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace N1_EleccionesCupi2.Modelo | |
{ | |
/// <summary> | |
/// Representa la entidad `Candidato` del modelo. | |
/// </summary> | |
public class Candidato | |
{ | |
#region Campos | |
/// <summary> | |
/// Apellido del candidato. | |
/// </summary> | |
private string apellido; | |
/// <summary> | |
/// Costo de la camapaña del candidato. | |
/// </summary> | |
private decimal costoCampania; | |
/// <summary> | |
/// Edad del candidato. | |
/// </summary> | |
private int edad; | |
/// <summary> | |
/// Nombre del candidato. | |
/// </summary> | |
private string nombre; | |
/// <summary> | |
/// Partico político al que pertenece el candidato. | |
/// </summary> | |
private string partidoPolitico; | |
/// <summary> | |
/// Los votos obtenidos por el candidato. | |
/// </summary> | |
private int votos; | |
#endregion | |
#region Propiedades | |
/// <summary> | |
/// Establece y recupera el apellido del candidato. | |
/// </summary> | |
public String Apellido | |
{ | |
get | |
{ | |
return apellido; | |
} | |
set | |
{ | |
apellido = value; | |
} | |
} | |
/// <summary> | |
/// Establece y recupera el costo de campaña del candidato. | |
/// </summary> | |
public decimal CostoCampania | |
{ | |
get | |
{ | |
return costoCampania; | |
} | |
set | |
{ | |
costoCampania = value; | |
} | |
} | |
/// <summary> | |
/// Establece y recupera la edad del candidato. | |
/// </summary> | |
public int Edad | |
{ | |
get | |
{ | |
return edad; | |
} | |
set | |
{ | |
if (value < 1) | |
{ | |
throw new ArgumentOutOfRangeException("value", value, "La edad debe ser mayor o igual a 1."); | |
} | |
edad = value; | |
} | |
} | |
/// <summary> | |
/// Establece y recupera el nombre del candidato. | |
/// </summary> | |
public string Nombre | |
{ | |
get | |
{ | |
return nombre; | |
} | |
set | |
{ | |
nombre = value; | |
} | |
} | |
/// <summary> | |
/// Establece y recupera el partido político al que pertence el candidato. | |
/// </summary> | |
public string PartidoPolitico | |
{ | |
get | |
{ | |
return partidoPolitico; | |
} | |
set | |
{ | |
partidoPolitico = value; | |
} | |
} | |
/// <summary> | |
/// Recupera el número de votos obtenidos por el candidato. | |
/// </summary> | |
public int Votos | |
{ | |
get | |
{ | |
return votos; | |
} | |
} | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea una instancia de `Candidato`: | |
/// </summary> | |
/// <param name="nombre">Nombre del candidato.</param> | |
/// <param name="apellido">Apellido del candidato.</param> | |
/// <param name="partidoPolitico">Partido político del candidato.</param> | |
/// <param name="edad">Edad del candidato.</param> | |
public Candidato(string nombre, string apellido, string partidoPolitico, int edad) | |
{ | |
this.apellido = apellido; | |
costoCampania = 0.0M; | |
this.edad = edad; | |
this.nombre = nombre; | |
this.partidoPolitico = partidoPolitico; | |
votos = 0; | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Agrega un voto. | |
/// </summary> | |
private void IngresarVoto() | |
{ | |
++votos; | |
} | |
/// <summary> | |
/// Ingresa un voto basado en un medio publicitario específico. | |
/// </summary> | |
/// <param name="medio">Medio (Internet, Radio, o Televisión) que influenció al votante.</param> | |
public void IngresarVoto(MedioPublicitario medio) | |
{ | |
switch(medio) | |
{ | |
case MedioPublicitario.Internet: | |
costoCampania += 100.0M; | |
break; | |
case MedioPublicitario.Radio: | |
costoCampania += 500.0M; | |
break; | |
case MedioPublicitario.Television: | |
costoCampania += 1000.0M; | |
break; | |
} | |
IngresarVoto(); | |
} | |
/// <summary> | |
/// Reinicia el costo de campaña a $0.00. | |
/// </summary> | |
public void ReiniciarCostoCampania() | |
{ | |
costoCampania = 0.0M; | |
} | |
/// <summary> | |
/// Reinicia el contendo de votos a 0. | |
/// </summary> | |
public void ReiniciarConteoVotos() | |
{ | |
votos = 0; | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment