/// <summary>
        /// Adiciona un nuevo libro al carrito de compras.
        /// </summary>
        /// <param name="libro">Libro a agregar.</param>
        /// <param name="cantidad">Cantidad del libro comprar.</param>
        public void AdicionarLibroCarrito(Libro libro, int cantidad)
        {
            // Comprueba si ya existe el libro en el carrito de compra:
            if (ExisteLibroEnCarrito(libro.Isbn))
            {
                foreach (DataGridViewRow dvrLibro in dgvCarrito.Rows)
                {
                    if (dvrLibro.Cells[0].Value.ToString().Equals(libro.Isbn))
                    {
                        dvrLibro.Cells[2].Value = ((int)dvrLibro.Cells[2].Value) + cantidad;
                        dvrLibro.Cells[3].Value = ((int)dvrLibro.Cells[2].Value) * libro.Precio;
                        break;
                    }
                }
            }
            else
            {
                int index = dgvCarrito.Rows.Add();

                dgvCarrito.Rows[index].Cells[0].Value = libro.Isbn;
                dgvCarrito.Rows[index].Cells[1].Value = libro.Titulo;
                dgvCarrito.Rows[index].Cells[2].Value = cantidad;
                dgvCarrito.Rows[index].Cells[3].Value = (decimal)cantidad * libro.Precio;
            }

            CalcularTotalCompra();
        }
        /// <summary>
        /// Configuración de escenario de pruebas no. 1.
        /// </summary>
        private void ConfiguracionEscenario1()
        {
            String titulo, isbn;
            int precio, cantidad1, cantidad2;

            // Crea el primer libro para pruebas:
            titulo = "T[itulo 1";
            isbn = "ISBN 1";
            precio = 1000;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 2";
            isbn = "ISBN 2";
            precio = 2000;
            libro2 = new Libro(isbn, titulo, precio);

            // Crea un ítem de compra:
            cantidad1 = 2;
            item1 = new ItemCompra(libro1, cantidad1);

            // Crea otro ítem de compra:
            cantidad2 = 3;
            item2 = new ItemCompra(libro2, cantidad2);

            // Crea el carro de compras con un ítem de compra:
            carrito = new CarroCompras();
            carrito.AdicionarCompra(libro1, cantidad1);
            carrito.AdicionarCompra(libro2, cantidad2);
        }
        /// <summary>
        /// Configuración de escenario de pruebas no. 1.
        /// </summary>
        private void ConfiguracionEscenario1()
        {
            string titulo, isbn;
            int precio, cantidad;
            CarroCompras carro;

            // Crea el primer libro pra pruebas:
            titulo = "Título 1";
            isbn = "ISBN 1";
            precio = 1000;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 2";
            isbn = "ISBN 2";
            precio = 200;
            libro2 = new Libro(isbn, titulo, precio);

            // Adiciona los libros al catálogo:
            tienda = new TiendaLibros();
            tienda.AdicionarLibroCatalogo(libro1);
            tienda.AdicionarLibroCatalogo(libro2);

            // Inicializa el carro de compras:
            carro = tienda.Carrito;
            cantidad = 1;
            carro.AdicionarCompra(libro1, cantidad);
        }
        /// <summary>
        /// Agrega un nuevo libro al catálogo.
        /// </summary>
        /// <param name="libro">Libro a agregar.</param>
        public void AgregarLibroCatalogo(Libro libro)
        {
            if (dgvCatalogo.Rows.Count == 0)
            {
                txtCantidad.Enabled = true;
                btnComprar.Enabled = true;
            }

            int index = dgvCatalogo.Rows.Add();

            dgvCatalogo.Rows[index].Cells["tbcIsbn"].Value = libro.Isbn;
            dgvCatalogo.Rows[index].Cells["tbcTitulo"].Value = libro.Titulo;
            dgvCatalogo.Rows[index].Cells["tbcPrecio"].Value = libro.Precio;
        }
        /// <summary>
        /// Configuración de escenario de pruebas no. 2.
        /// </summary>
        private void ConfiguracionEscenario2()
        {
            string titulo, isbn;
            int precio;

            // Crea el primer libro para pruebas:
            titulo = "Título 3";
            isbn = "ISBN 3";
            precio = 10;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 4";
            isbn = "ISBN 4";
            precio = 20;
            libro2 = new Libro(isbn, titulo, precio);
        }
        /// <summary>
        /// Configuración de escenario de pruebas no. 3.
        /// </summary>
        private void ConfiguracionEscenario1()
        {
            String titulo, isbn;
            int precio;

            // Crea el primer libro para pruebas:
            titulo = "Título 1";
            isbn = "ISBN 1";
            precio = 1000;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 2";
            isbn = "ISBN  2";
            precio = 2000;
            libro2 = new Libro(isbn, titulo, precio);
        }
        /// <summary>
        /// Adiciona un libro como ítem en el carrito de compras.
        /// </summary>
        /// <param name="libro">Libro a agregar al carrito de compras.</param>
        /// <param name="cantidad">Cantidad de este libro a agregar.</param>
        public void AdicionarCompra(Libro libro, int cantidad)
        {
            // Busca un ítem de compra donde exista el libro:
            ItemCompra item = BuscarItemCompraLibro(libro.Isbn);

            // Si no existe ese libro en el carrito, crea el ítem y lo agrega:
            if (item == null)
            {
                ItemCompra nuevoItem = new ItemCompra(libro, cantidad);
                m_itemsCompra.Add(nuevoItem);
            }
            else
            {
                // Si ya existe, sólo aumenta la cantidad del pedido:
                item.CantidadSolicitada += cantidad;
            }
        }
 /// <summary>
 /// Determina si este libro es igual a otro libro.
 /// </summary>
 /// <param name="libro">Libro a comparar.</param>
 /// <returns><em>true</em> si los libros son iguales, <em>false</em> en caso contrario.</returns>
 public bool IgualALibro(Libro libro)
 {
     return this.m_isbn.Equals(libro.Isbn);
 }
 /// <summary>
 /// Crea ítem de compra con un libro y su cantidad a comprar.
 /// </summary>
 /// <param name="libro">Libro a asociar a este ítem de compra.</param>
 /// <param name="cantidad">Cantidad a comprar de este libro.</param>
 public ItemCompra(Libro libro, int cantidad)
 {
     this.m_libro = libro;
     this.m_cantidad = cantidad;
 }
        /// <summary>
        /// Configuración de escenario de pruebas no. 2.
        /// </summary>
        private void ConfiguracionEscenario2()
        {
            string titulo, isbn;
            int precio, cantidad1, cantidad2;

            // Crea el primer libro para pruebas:
            titulo = "Título 3";
            isbn = "ISBN 3";
            precio = 10000;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 4";
            isbn = "ISBN 4";
            precio = 20000;
            libro2 = new Libro(isbn, titulo, precio);

            // Crea un ítem de compra:
            cantidad1 = 20;
            item1 = new ItemCompra(libro1, cantidad1);

            // Crea otro ítem de compra:
            cantidad2 = 30;
            item2 = new ItemCompra(libro2, cantidad2);
        }
        /// <summary>
        /// Configuración de escenario de pruebas no. 3.
        /// </summary>
        private void ConfiguracionEscenario3()
        {
            string titulo, isbn;
            int precio, cantidad1, cantidad2;

            // Obtiene los datos de prueba:

            // Crea el primer libro para pruebas:
            titulo = "Título 5";
            isbn = "ISBN 5";
            precio = 10;
            libro1 = new Libro(isbn, titulo, precio);

            // Crea el segundo libro para pruebas:
            titulo = "Título 6";
            isbn = "ISBN 6";
            precio = 20;
            libro2 = new Libro(isbn, titulo, precio);

            // Crea un ítem de compra:
            cantidad1 = 1;
            item1 = new ItemCompra(libro1, cantidad1);

            // Crea otro ítem de compra:
            cantidad2 = 2;
            item2 = new ItemCompra(libro2, cantidad2);
        }
 /// <summary>
 /// Adiciona un nuevo libro al catálogo de venta de la tienda.
 /// </summary>
 /// <param name="libro">Libro a adicionar al catálogo de venta.</param>
 public void AdicionarLibroCatalogo(Libro libro)
 {
     // Verifica si el libro existe:
     Libro resultado = BuscarLibro(libro.Isbn);
     
     // Sólo añade el libro si no existe:
     if (resultado == null)
     {
         m_catalogo.Add(libro);
     }
 }
 /// <summary>
 /// Adicionar un nuevo libro al catálogo.
 /// </summary>
 /// <param name="isbn">ISBN del libro.</param>
 /// <param name="titulo">Título del libro.</param>
 /// <param name="precio">Precio del libro.</param>
 public void AdicionarLibro(string isbn, string titulo, decimal precio)
 {
     Libro nuevoLibro = new Libro(isbn, titulo, precio);
     tienda.AdicionarLibroCatalogo(nuevoLibro);
     ctlCatalogo.AgregarLibroCatalogo(nuevoLibro);
 }