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): `TiendaLibros`.
  11. //
  12. // Propósito: Implementar y representar la entidad
  13. // `TiendaLibros` del dominio.
  14. //
  15. // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/visualizacion-codigo/tiendalibros
  16. //
  17. ============================================================*/
  18.  
  19. using System;
  20. using System.Collections;
  21.  
  22. namespace N3_TiendaLibros.Modelo
  23. {
  24.     /// <summary>
  25.     /// Clase que representa la entidad `TiendaLibros`.
  26.     /// </summary>
  27.     public class TiendaLibros
  28.     {
  29.         #region Campos
  30.         /// <summary>
  31.         /// Catálogo de libros.
  32.         /// </summary>
  33.         private ArrayList m_catalogo;
  34.         /// <summary>
  35.         /// Carrito de compras.
  36.         /// </summary>
  37.         private CarroCompras m_carrito;
  38.         #endregion
  39.  
  40.         #region Propiedades
  41.         /// <summary>
  42.         /// Recupera y modifica el carrito de compras de esta tienda de libros.
  43.         /// </summary>
  44.         public CarroCompras Carrito
  45.         {
  46.             get
  47.             {
  48.                 return m_carrito;
  49.             }
  50.             set
  51.             {
  52.                 m_carrito = value;
  53.             }
  54.         }
  55.         /// <summary>
  56.         /// Recupera y modifica el catálogo de venta de esta tienda de libros.
  57.         /// </summary>
  58.         public ArrayList Catalogo
  59.         {
  60.             get
  61.             {
  62.                 return m_catalogo;
  63.             }
  64.             set
  65.             {
  66.                 m_catalogo = value;
  67.             }
  68.         }
  69.         #endregion
  70.  
  71.         #region Constructores
  72.         /// <summary>
  73.         /// Crea una nueva tienda de libros.
  74.         /// </summary>
  75.         public TiendaLibros()
  76.         {
  77.             m_catalogo = new ArrayList();
  78.             m_carrito = new CarroCompras();
  79.         }
  80.         #endregion
  81.  
  82.         #region Métodos
  83.         /// <summary>
  84.         /// Adiciona un nuevo libro al catálogo de venta de la tienda.
  85.         /// </summary>
  86.         /// <param name="libro">Libro a adicionar al catálogo de venta.</param>
  87.         public void AdicionarLibroCatalogo(Libro libro)
  88.         {
  89.             // Verifica si el libro existe:
  90.             Libro resultado = BuscarLibro(libro.Isbn);
  91.            
  92.             // Sólo añade el libro si no existe:
  93.             if (resultado == null)
  94.             {
  95.                 m_catalogo.Add(libro);
  96.             }
  97.         }
  98.         /// <summary>
  99.         /// Busca un libro en el catálogo.
  100.         /// </summary>
  101.         /// <param name="isbn">ISBN del libro a buscar en el catálogo.</param>
  102.         /// <returns>Referencia del libro encontrado. (Puede ser `null`.)</returns>
  103.         public Libro BuscarLibro(String isbn)
  104.         {
  105.             int indice = 0;
  106.             int totalLibros = m_catalogo.Count;
  107.             Libro libro = null;
  108.             bool encontrado = false;
  109.  
  110.             while (indice < totalLibros && !encontrado)
  111.             {
  112.                 libro = (Libro)m_catalogo[indice];
  113.  
  114.                 if (libro != null && libro.Isbn.Equals(isbn))
  115.                 {
  116.                     encontrado = true;
  117.                 }
  118.  
  119.                 ++indice;
  120.             }
  121.  
  122.             if (encontrado)
  123.             {
  124.                 return libro;
  125.             }
  126.             else
  127.             {
  128.                 return null;
  129.             }
  130.         }
  131.         /// <summary>
  132.         /// Crea un nuevo carrito de compra.
  133.         /// </summary>
  134.         public void CrearNuevaCompra()
  135.         {
  136.             m_carrito = new CarroCompras();
  137.         }
  138.         #endregion
  139.  
  140.         #region Métodos de extensión
  141.         /// <summary>
  142.         /// Método de extensión número 1.
  143.         /// </summary>
  144.         /// <returns>Cadena de caracteres de respuesta.</returns>
  145.         public String MetodoExtension1()
  146.         {
  147.             return "Respuesta 1";
  148.         }
  149.         /// <summary>
  150.         /// Método de extensión número 2.
  151.         /// </summary>
  152.         /// <returns>Cadena de caracteres de respuesta.</returns>
  153.         public String MetodoExtension2()
  154.         {
  155.             return "Respuesta 2";
  156.         }
  157.         #endregion
  158.     }
  159. }