Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created June 8, 2014 22:21
Show Gist options
  • Save Fhernd/d94c6b58cdd531c56919 to your computer and use it in GitHub Desktop.
Save Fhernd/d94c6b58cdd531c56919 to your computer and use it in GitHub Desktop.
Representa a la entidad `Candidato`.
// ===++===
//
// 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