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): `ControlCatalogo`
  11. //
  12. // Propósito: Implementar y representar el control visual
  13. // personalizado para el catálogo de libros a la venta.
  14. //
  15. // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/visualizacion-codigo/tablamodelocatalogo
  16. //
  17. ============================================================*/
  18.  
  19. using System;
  20. using System.Windows.Forms;
  21. using N3_TiendaLibros.Modelo;
  22.  
  23. namespace N3_TiendaLibros.GUI
  24. {
  25.     /// <summary>
  26.     /// Clase que representa el control visual del catálogo de libros.
  27.     /// </summary>
  28.     public partial class ControlCatalogo : UserControl
  29.     {
  30.         #region Controles
  31.         /// <summary>
  32.         /// Referencia la ventana principal de la aplicación.
  33.         /// </summary>
  34.         private Principal m_principal;
  35.         #endregion
  36.  
  37.         #region Constructores
  38.         /// <summary>
  39.         /// Crea un nuevo control para la adición de libros al catálogo de venta.
  40.         /// </summary>
  41.         /// <param name="principal">Referencia a la ventana principal de la aplicación.</param>
  42.         public ControlCatalogo(Principal principal)
  43.         {
  44.             InitializeComponent();
  45.            
  46.             m_principal = principal;
  47.         }
  48.         #endregion
  49.  
  50.         #region Métodos
  51.         /// <summary>
  52.         /// Agrega un nuevo libro al catálogo.
  53.         /// </summary>
  54.         /// <param name="libro">Libro a agregar.</param>
  55.         public void AgregarLibroCatalogo(Libro libro)
  56.         {
  57.             if (dgvCatalogo.Rows.Count == 0)
  58.             {
  59.                 txtCantidad.Enabled = true;
  60.                 btnComprar.Enabled = true;
  61.             }
  62.  
  63.             int index = dgvCatalogo.Rows.Add();
  64.  
  65.             dgvCatalogo.Rows[index].Cells["tbcIsbn"].Value = libro.Isbn;
  66.             dgvCatalogo.Rows[index].Cells["tbcTitulo"].Value = libro.Titulo;
  67.             dgvCatalogo.Rows[index].Cells["tbcPrecio"].Value = libro.Precio;
  68.         }
  69.         #endregion
  70.  
  71.         #region Eventos:
  72.         /// <summary>
  73.         /// Evento que inicia el proceso de compra de un libro.
  74.         /// </summary>
  75.         /// <param name="sender">Objeto generador del evento.</param>
  76.         /// <param name="e">Argumentos del evento.</param>
  77.         private void btnComprar_Click(object sender, EventArgs e)
  78.         {
  79.             if (txtCantidad.Text.Length > 0)
  80.             {
  81.                 Int16 cantidad;
  82.  
  83.                 if (Int16.TryParse(txtCantidad.Text, out cantidad))
  84.                 {
  85.                     DataGridViewRow dgr = dgvCatalogo.SelectedRows[0];
  86.  
  87.                     m_principal.AdicionarCompra(dgr.Cells["tbcIsbn"].Value.ToString(), cantidad);
  88.                 }
  89.                 else
  90.                 {
  91.                     MessageBox.Show(this, "El campo Precio no contiene un valor válido. (Sólo se admiten valores enteros.)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  92.                 }
  93.             }
  94.             else
  95.             {
  96.                 MessageBox.Show(this, "El campo no debe estar vacío.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  97.             }
  98.         }
  99.         #endregion
  100.     }
  101. }