Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL - xCSw
- //
- // Proyecto: Cupi2.NET
- //
- // ===--===
- /*============================================================
- //
- // Clase(s): `CarroCompras`
- //
- // Propósito: Implementar y representar la entidad
- // `CarroCompras` del dominio.
- //
- // Original: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/visualizacion-codigo/carrocompras
- //
- ============================================================*/
- using System;
- using System.Collections;
- namespace N3_TiendaLibros.Modelo
- {
- /// <summary>
- /// Representa la entidad `CarroCompras`.
- /// </summary>
- public class CarroCompras
- {
- #region Campos
- /// <summary>
- /// Ïtems de la compra de libros.
- /// </summary>
- private ArrayList m_itemsCompra;
- #endregion
- #region Propiedades
- /// <summary>
- /// Recupera y modifica los ítems de compra.
- /// </summary>
- public ArrayList ItemsCompra
- {
- get
- {
- return m_itemsCompra;
- }
- set
- {
- m_itemsCompra = value;
- }
- }
- #endregion
- #region Constructores
- /// <summary>
- /// Crea un nuevo carrito de compras de libros.
- /// </summary>
- public CarroCompras()
- {
- m_itemsCompra = new ArrayList();
- }
- #endregion
- #region Métodos
- /// <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>
- /// Borra un ítem de compra del carrito de compras.
- /// </summary>
- /// <param name="item">Ítem de compra a eliminar.</param>
- public void BorrarItemCompra(ItemCompra item)
- {
- ItemCompra itemAux = null;
- bool encontrado = false;
- // El índice para recorrer los elementos:
- int i = 0;
- int tamanio = m_itemsCompra.Count;
- // Avanza mientras no encuentre el libro en un ítem:
- while (i < tamanio && !encontrado)
- {
- itemAux = (ItemCompra)m_itemsCompra[i];
- if (itemAux.IgualAItem(item))
- {
- encontrado = true;
- }
- ++i;
- }
- if (encontrado)
- {
- m_itemsCompra.Remove(itemAux);
- }
- }
- /// <summary>
- /// Busca un ítem de compra por el ISBN del libro.
- /// </summary>
- /// <param name="isbn">ISBN del libro a buscar.</param>
- /// <returns>Ítem de compra del libro buscado.</returns>
- public ItemCompra BuscarItemCompraLibro(String isbn)
- {
- foreach (ItemCompra item in m_itemsCompra)
- {
- if (item.Libro.Isbn.Equals(isbn))
- {
- return item;
- }
- }
- return null;
- }
- /// <summary>
- /// CAlcula el total de la compra para este carrito de compra.
- /// </summary>
- /// <returns>Total de la compra.</returns>
- public decimal CalcularValorTotalCompra()
- {
- decimal total = 0.0M;
- foreach (ItemCompra item in m_itemsCompra)
- {
- total += item.CalcularSubtotalItem();
- }
- return total;
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement