Example #1
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Testeando insertar productos a la base de datos: ");

                Hardware h1 = new Hardware("Teclado 2.0", 80, 60, 484645);
                Hardware h2 = new Hardware("Pendrive 3.0", 200, 100, 849415);
                Software s1 = new Software("Disney plus", 250, 250, "APOSJPFRPE");
                Software s2 = new Software("Mozilla", 96, 145, "OKDSAOPAKSD");


                Console.WriteLine("Tabla Software actualmente: ");
                Console.WriteLine(Stock.ListarLosProductos(Stock.ListaProductosSoftware));

                Console.WriteLine("Tabla Hardware actualmente: ");
                Console.WriteLine(Stock.ListarLosProductos(Stock.ListaProductosHardware));

                Console.WriteLine("Toque una tecla para continuar");
                Console.WriteLine("----------------------------------------------------------------------------------------------------");
                Console.ReadKey();
                Console.Clear();

                if (Stock.ListaProductosHardware + h1 &&
                    Stock.ListaProductosHardware + h2 &&
                    Stock.ListaProductosSoftware + s1 &&
                    Stock.ListaProductosSoftware + s2)
                {
                    Console.WriteLine("Se insertaron los productos correctamente");
                    Console.WriteLine("Asi estan las tablas ahora: ");

                    Stock.ActualizarListas();

                    Console.WriteLine(" ");
                    Console.WriteLine("Tabla de software:");
                    Console.WriteLine(Stock.ListarLosProductos(Stock.ListaProductosSoftware));

                    Console.WriteLine("Tabla de hardware:");
                    Console.WriteLine(Stock.ListarLosProductos(Stock.ListaProductosHardware));

                    Console.WriteLine("Base de datos actualizada");
                }
                else
                {
                    Console.WriteLine("Alguno de esos prodcutos ya existe en la base de datos");
                }
            }
            catch (DatosErroneosException errorEx)
            {
                Console.WriteLine(errorEx.Message);
            }
            catch (Exception errorGeneral)
            {
                Console.WriteLine(errorGeneral.Message);
            }
            LimpiarPantalla();

            try
            {
                Console.WriteLine("Testeando generar una venta y serializarla");
                Console.WriteLine("");
                Console.WriteLine($"Cantidad de ventas actualmente: {Stock.VentasRealizadas.Count}");
                Console.WriteLine("");

                //Genero numeros random que serviran de indice para elegir un cliente aleatorio y productos aleatorios
                Random random          = new Random();
                int    clienteRandom   = random.Next(0, Stock.Clientes.Count - 1);
                int    productoRandom  = random.Next(0, Stock.ListaProductosSoftware.Count - 1);
                int    producto2Random = random.Next(0, Stock.ListaProductosHardware.Count - 1);

                //Lista que simularia un carrito ya que almacena los prodcutos de la venta
                List <Producto> listaTestVenta = new List <Producto>();

                //Agrego productos random a el carrito
                listaTestVenta.Add(Stock.ListaProductosSoftware[productoRandom]);
                listaTestVenta.Add(Stock.ListaProductosHardware[producto2Random]);

                //Creo una venta
                Venta v1 = new Venta(Stock.GetUltimaIdVentas() + 1,
                                     Stock.Clientes[clienteRandom],
                                     listaTestVenta,
                                     Venta.PrecioFinalCalculado(listaTestVenta));

                //Realiza el descuento a la cantidad del producto elejido
                //Actualiza la base de datos respecto a la cantidad descontada
                //Añade a la lista de ventas dicha venta para luego ser serializada en un archivo xml
                Venta.ConfirmarCompra(v1);

                //Datos de la venta
                Console.WriteLine(v1.ToString());

                //Serializo la lista de ventas
                if (Venta.SerializarVentas())
                {
                    Console.WriteLine("Ventas serializadas en archivo xml");
                }

                Console.WriteLine("Base de datos actualizada");
            }
            catch (DatosErroneosException errorEx)
            {
                Console.WriteLine(errorEx.Message);
            }
            catch (Exception errorGeneral)
            {
                Console.WriteLine(errorGeneral.Message);
            }
            LimpiarPantalla();

            try
            {
                Console.WriteLine("Testendo DatosErroneosException: ");
                Console.WriteLine("");
                Console.WriteLine("Se intentara cargar un numero negativo a el precio");

                Software softTest = new Software("SoftTesting", -10, 10, "FSDFSDFF");
            }
            catch (DatosErroneosException datosErroneos)
            {
                Console.WriteLine(datosErroneos.Message);
            }
            LimpiarPantalla();

            try
            {
                Console.WriteLine("Testendo metodo de extension: ");
                Console.WriteLine("");
                Console.WriteLine("Se intentara ver la cantidad de productos disponibles para vender segun el tipo de producto");

                int stockProductosSoftware = ExtensionList.GetCantidadStockTotal(Stock.ListaProductosSoftware);
                int stockProductosHardware = ExtensionList.GetCantidadStockTotal(Stock.ListaProductosHardware);

                Console.WriteLine("");
                Console.WriteLine($"Stock productos de software: {stockProductosSoftware}");
                Console.WriteLine($"Stock productos de Hardware: {stockProductosHardware}");
            }
            catch (DatosErroneosException datosErroneos)
            {
                Console.WriteLine(datosErroneos.Message);
            }

            LimpiarPantalla();
        }