Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // ===++===
  2. //
  3. //    OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Candidato.cs
  9. //
  10. // Original en: http://goo.gl/sZz9gI
  11. //
  12. // Propósito: Modelar la entidad `Candidato`.
  13. //
  14. ============================================================*/
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Linq;
  18. using System.Text;
  19. using System.Threading.Tasks;
  20.  
  21. namespace N1_EleccionesCupi2.Modelo
  22. {
  23.     /// <summary>
  24.     /// Representa la entidad `Candidato` del modelo.
  25.     /// </summary>
  26.     public class Candidato
  27.     {
  28.         #region Campos
  29.         /// <summary>
  30.         /// Apellido del candidato.
  31.         /// </summary>
  32.         private string apellido;
  33.         /// <summary>
  34.         /// Costo de la camapaña del candidato.
  35.         /// </summary>
  36.         private decimal costoCampania;
  37.         /// <summary>
  38.         /// Edad del candidato.
  39.         /// </summary>
  40.         private int edad;
  41.         /// <summary>
  42.         /// Nombre del candidato.
  43.         /// </summary>
  44.         private string nombre;
  45.         /// <summary>
  46.         /// Partico político al que pertenece el candidato.
  47.         /// </summary>
  48.         private string partidoPolitico;
  49.         /// <summary>
  50.         /// Los votos obtenidos por el candidato.
  51.         /// </summary>
  52.         private int votos;
  53.         #endregion
  54.         #region Propiedades
  55.         /// <summary>
  56.         /// Establece y recupera el apellido del candidato.
  57.         /// </summary>
  58.         public String Apellido
  59.         {
  60.             get
  61.             {
  62.                 return apellido;
  63.             }
  64.             set
  65.             {
  66.                 apellido = value;
  67.             }
  68.         }
  69.         /// <summary>
  70.         /// Establece y recupera el costo de campaña del candidato.
  71.         /// </summary>
  72.         public decimal CostoCampania
  73.         {
  74.             get
  75.             {
  76.                 return costoCampania;
  77.             }
  78.             set
  79.             {
  80.                 costoCampania = value;
  81.             }
  82.         }
  83.         /// <summary>
  84.         /// Establece y recupera la edad del candidato.
  85.         /// </summary>
  86.         public int Edad
  87.         {
  88.             get
  89.             {
  90.                 return edad;
  91.             }
  92.             set
  93.             {
  94.                 if (value < 1)
  95.                 {
  96.                     throw new ArgumentOutOfRangeException("value", value, "La edad debe ser mayor o igual a 1.");
  97.                 }
  98.  
  99.                 edad = value;
  100.             }
  101.         }
  102.         /// <summary>
  103.         /// Establece y recupera el nombre del candidato.
  104.         /// </summary>
  105.         public string Nombre
  106.         {
  107.             get
  108.             {
  109.                 return nombre;
  110.             }
  111.             set
  112.             {
  113.                 nombre = value;
  114.             }
  115.         }
  116.         /// <summary>
  117.         /// Establece y recupera el partido político al que pertence el candidato.
  118.         /// </summary>
  119.         public string PartidoPolitico
  120.         {
  121.             get
  122.             {
  123.                 return partidoPolitico;
  124.             }
  125.             set
  126.             {
  127.                 partidoPolitico = value;
  128.             }
  129.         }
  130.         /// <summary>
  131.         /// Recupera el número de votos obtenidos por el candidato.
  132.         /// </summary>
  133.         public int Votos
  134.         {
  135.             get
  136.             {
  137.                 return votos;
  138.             }
  139.         }
  140.         #endregion
  141.         #region Constructores
  142.         /// <summary>
  143.         /// Crea una instancia de `Candidato`:
  144.         /// </summary>
  145.         /// <param name="nombre">Nombre del candidato.</param>
  146.         /// <param name="apellido">Apellido del candidato.</param>
  147.         /// <param name="partidoPolitico">Partido político del candidato.</param>
  148.         /// <param name="edad">Edad del candidato.</param>
  149.         public Candidato(string nombre, string apellido, string partidoPolitico, int edad)
  150.         {
  151.             this.apellido = apellido;
  152.             costoCampania = 0.0M;
  153.             this.edad = edad;
  154.             this.nombre = nombre;
  155.             this.partidoPolitico = partidoPolitico;
  156.             votos = 0;
  157.         }
  158.         #endregion
  159.         #region Métodos
  160.         /// <summary>
  161.         /// Agrega un voto.
  162.         /// </summary>
  163.         private void IngresarVoto()
  164.         {
  165.             ++votos;
  166.         }
  167.         /// <summary>
  168.         /// Ingresa un voto basado en un medio publicitario específico.
  169.         /// </summary>
  170.         /// <param name="medio">Medio (Internet, Radio, o Televisión) que influenció al votante.</param>
  171.         public void IngresarVoto(MedioPublicitario medio)
  172.         {
  173.             switch(medio)
  174.             {
  175.                 case MedioPublicitario.Internet:
  176.                     costoCampania += 100.0M;
  177.                     break;
  178.                 case MedioPublicitario.Radio:
  179.                     costoCampania += 500.0M;
  180.                     break;
  181.                 case MedioPublicitario.Television:
  182.                     costoCampania += 1000.0M;
  183.                     break;
  184.             }
  185.             IngresarVoto();
  186.         }
  187.         /// <summary>
  188.         /// Reinicia el costo de campaña a $0.00.
  189.         /// </summary>
  190.         public void ReiniciarCostoCampania()
  191.         {
  192.             costoCampania = 0.0M;
  193.         }
  194.         /// <summary>
  195.         /// Reinicia el contendo de votos a 0.
  196.         /// </summary>
  197.         public void ReiniciarConteoVotos()
  198.         {
  199.             votos = 0;
  200.         }
  201.         #endregion
  202.     }
  203. }