Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // ===++===
  2. //
  3. //    OrtizOL - xCSw
  4. //
  5. //  Proyecto: Cupi2.NET
  6. //
  7. // ===--===
  8. /*============================================================
  9. //
  10. // Clase(s): `ItemCompra`
  11. //
  12. // Propósito: Implementar y representar la entidad
  13. // `ItemCompra` del dominio.
  14. //
  15. // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/visualizacion-codigo/itemcompra
  16. //
  17. ============================================================*/
  18.  
  19. using System;
  20.  
  21. namespace N3_TiendaLibros.Modelo
  22. {
  23.     /// <summary>
  24.     /// Clase que representa la entidad `ItemCompra`.
  25.     /// </summary>
  26.     public class ItemCompra
  27.     {
  28.         #region Campos
  29.         /// <summary>
  30.         /// Libro asociado a este ítem de compra.
  31.         /// </summary>
  32.         private Libro m_libro;
  33.         /// <summary>
  34.         /// Cantidad del libro comprada.
  35.         /// </summary>
  36.         private int m_cantidad;
  37.         #endregion
  38.  
  39.         #region Campos
  40.         /// <summary>
  41.         /// Recupera y modifica el libro asociado a este ítem de compra.
  42.         /// </summary>
  43.         public Libro Libro
  44.         {
  45.             get
  46.             {
  47.                 return m_libro;
  48.             }
  49.             set
  50.             {
  51.                 m_libro = value;
  52.             }
  53.         }
  54.         /// <summary>
  55.         /// Recupera y modifica la cantidad solicitada de este ítem de compra.
  56.         /// </summary>
  57.         public int CantidadSolicitada
  58.         {
  59.             get
  60.             {
  61.                 return m_cantidad;
  62.             }
  63.             set
  64.             {
  65.                 m_cantidad = value;
  66.             }
  67.         }
  68.         #endregion
  69.  
  70.         #region Constructores
  71.         /// <summary>
  72.         /// Crea ítem de compra con un libro y su cantidad a comprar.
  73.         /// </summary>
  74.         /// <param name="libro">Libro a asociar a este ítem de compra.</param>
  75.         /// <param name="cantidad">Cantidad a comprar de este libro.</param>
  76.         public ItemCompra(Libro libro, int cantidad)
  77.         {
  78.             this.m_libro = libro;
  79.             this.m_cantidad = cantidad;
  80.         }
  81.         #endregion
  82.  
  83.         #region Métodos
  84.         /// <summary>
  85.         /// Calcula el subtotal de este ítem de compra.
  86.         /// </summary>
  87.         /// <returns>Subtotal de la compra.</returns>
  88.         public decimal CalcularSubtotalItem()
  89.         {
  90.             return Libro.Precio * Decimal.Parse(m_cantidad.ToString());
  91.         }
  92.         /// <summary>
  93.         /// Determina si este ítem de compra es igual a otro ítem de compra.
  94.         /// </summary>
  95.         /// <param name="item">Otro ítem de compra a comparar.</param>
  96.         /// <returns><em>true</em> si los dos ítems son iguales, <em>false</em> en caso contrario.</returns>
  97.         public bool IgualAItem(ItemCompra item)
  98.         {
  99.             return m_libro.IgualALibro(item.Libro);
  100.         }
  101.         #endregion
  102.     }
  103. }