Created
May 15, 2020 22:19
-
-
Save pablopioli/fb72f0598e1c4b9b87ac92f4e0568b36 to your computer and use it in GitHub Desktop.
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
using System; | |
using System.Collections.Generic; | |
namespace AgregarCarrito_openShop | |
{ | |
class GestorVentas | |
{ | |
static Carrito Carrito = new Carrito(); | |
static List<FormasPago> FormasPagos = new List<FormasPago>(); | |
static void Main(string[] args) | |
{ | |
FormasPagos.Add(new FormasPago("Tarjeta en 6 cuotas sin interés")); | |
FormasPagos.Add(new FormasPago("Débito")); | |
// Voy pedir productos de manera infinita hasta que el usuario diga basta | |
while (true) | |
{ | |
var finalizado = Comprar(); | |
if (finalizado) | |
{ | |
break; | |
} | |
} | |
AgregarPago(); | |
System.Console.WriteLine("Gracias por su compra, vuelva pronto"); | |
} | |
static public bool Comprar() | |
{ | |
RegistroProductos.MostrarProductos(); | |
System.Console.WriteLine(); | |
System.Console.WriteLine("Seleccione un producto"); | |
var opcionProducto = System.Console.ReadLine(); | |
var producto = RegistroProductos.Productos[int.Parse(opcionProducto) - 1]; | |
System.Console.WriteLine(); | |
System.Console.WriteLine("Introduzca la cantidad de productos que desea comprar:"); | |
var opcionCantidad = System.Console.ReadLine(); | |
int cantidadElegida = (int.Parse(opcionCantidad)); | |
Carrito.Agregar(producto, cantidadElegida); | |
Carrito.MostrarCarrito(); | |
System.Console.WriteLine(""); | |
System.Console.WriteLine("Digite 1 para seguir comprando, 2 para abonar los productos del carrito"); | |
var opcionSeguir = System.Console.ReadLine(); | |
if (int.Parse(opcionSeguir) == 1) | |
{ | |
return false; | |
} | |
else | |
{ | |
return true; | |
} | |
} | |
static public void AgregarPago() | |
{ | |
System.Console.WriteLine(); | |
System.Console.WriteLine("Formas de pago:"); | |
int pos = 1; | |
foreach (var pago in FormasPagos) | |
{ | |
System.Console.WriteLine(pos + "- " + pago.Tipo); | |
pos++; | |
} | |
System.Console.WriteLine(); | |
System.Console.WriteLine("Seleccione una forma de pago (Digite 1 o 2)"); | |
var seleccion2 = System.Console.ReadLine(); | |
var formasPagos = FormasPagos[int.Parse(seleccion2) - 1]; | |
System.Console.WriteLine("La forma de pago elegida fue: " + formasPagos.Tipo); | |
System.Console.WriteLine(""); | |
// Aqui podriamos convertir el carrito en un objeto Venta y asignar la forma de pago | |
} | |
} | |
class FormasPago | |
{ | |
public string Tipo { get; set; } | |
public FormasPago(string tipo) | |
{ | |
Tipo = tipo; | |
} | |
} | |
class Carrito | |
{ | |
private List<ProductoEnCarrito> Productos = new List<ProductoEnCarrito>(); | |
public void Agregar(Producto producto, int cantidad) | |
{ | |
var prodEnCarrito = new ProductoEnCarrito(); | |
prodEnCarrito.Producto = producto; | |
prodEnCarrito.Cantidad = cantidad; | |
Productos.Add(prodEnCarrito); | |
} | |
public void MostrarCarrito() | |
{ | |
System.Console.WriteLine(""); | |
System.Console.WriteLine("Tienes en tu carrito: "); | |
decimal totalCarrito = 0; | |
foreach (var productoEnCarrito in Productos) | |
{ | |
var cantidad = productoEnCarrito.Cantidad; | |
var precio = productoEnCarrito.Producto.Precio; | |
var nombre = productoEnCarrito.Producto.Nombre; | |
System.Console.WriteLine(cantidad + "x " + nombre + " $" + cantidad * precio); | |
totalCarrito = totalCarrito + cantidad * precio; | |
} | |
System.Console.WriteLine("Total: $" + totalCarrito); | |
} | |
} | |
class ProductoEnCarrito | |
{ | |
public Producto Producto { get; set; } | |
public int Cantidad { get; set; } | |
} | |
class Producto | |
{ | |
public string Nombre { get; set; } | |
public decimal Precio { get; set; } | |
public string Marca { get; set; } | |
public Producto(string nombre, decimal precio, string marca) | |
{ | |
Nombre = nombre; | |
Precio = precio; | |
Marca = marca; | |
} | |
} | |
class RegistroProductos | |
{ | |
public static List<Producto> Productos = new List<Producto>(); | |
static RegistroProductos() | |
{ | |
Productos.Add(new Producto("Cafetera", 3000, "Philips")); | |
Productos.Add(new Producto("Celular", 249999.99m, "Apple")); | |
Productos.Add(new Producto("Televisor", 22000, "Sony")); | |
Productos.Add(new Producto("Ojotas", 700, "Havaianas")); | |
Productos.Add(new Producto("Teclado", 6500.99m, "Razer")); | |
} | |
static public void MostrarProductos() | |
{ | |
System.Console.WriteLine(); | |
System.Console.WriteLine("OPEN SHOP"); | |
System.Console.WriteLine("Listado de productos:"); | |
int pos = 1; | |
foreach (var producto in Productos) | |
{ | |
System.Console.WriteLine(pos + "-" + producto.Nombre + " " + producto.Marca + " $" + producto.Precio); | |
pos++; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment