Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // 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
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement