Created
July 14, 2015 20:12
-
-
Save Fhernd/a426d7b61d69cdd336f0 to your computer and use it in GitHub Desktop.
Clase que representa la clase CarroCompras.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// 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 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment