示例#1
0
        /// <summary>
        /// Método que permite guardar los datos en un archivo Xml e informar de los eventuales errores al leer archivos que pudieran surgir
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void iBGuardarDatos_Click(object sender, EventArgs e)
        {
            DialogResult dialogo = MessageBox.Show("¿ Desea guardar la información actual?",
                                                   "Guardar datos", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (dialogo == DialogResult.OK)
            {
                try
                {
                    serviceXmlFabrica.SaveXmlFabrica(fabricaSingleton);
                    MessageBox.Show("Datos guardados correctamente", "Guardar datos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                catch (SaveFactoryException ex)
                {
                    MessageBox.Show("Hubo errores al guardar el archivo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    logger.saveReport(ex);
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.Title = "Seghesio, Marcos Daniel TP3 2D";


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("----------Fabrica de Productos para Gatos: demostración Consola--------");
            Console.WriteLine("-----------------------------------------------------------------------");


            Console.WriteLine("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();


            // Declarar los objetos necesarios para leer archivos XML

            FabricaXmlService serviceXmlFabrica = new FabricaXmlService($"{AppDomain.CurrentDomain.BaseDirectory}Origen\\");
            Fabrica           fabrica           = serviceXmlFabrica.ReadXmlFabrica();

            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("------------Atributos asignados a fabrica correctamente----------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---------------------Iterar lista de insumos --------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            foreach (Insumo i in fabrica.StockInsumos)
            {
                Console.WriteLine(i.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();

            //1- Usuario Ingresa insumos a fabrica existente

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---------------------Agregar nuevos Insumos----------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            List <Insumo> insumosAgregar = new List <Insumo>();

            Insumo maderaUno        = new Madera(ETipoMadera.Pino, EForma.Tablon, 10);
            Insumo maderaSecundaria = new Madera(ETipoMadera.Pino, EForma.Tubo, 5);
            Insumo telaUno          = new Tela(EColor.Rosa, ETipoTela.Alfombra, 15);


            Insumo adicionalUno    = new InsumoAccesorio(ETipoAccesorio.Barniz, 10);
            Insumo adicionalDos    = new InsumoAccesorio(ETipoAccesorio.Tornillo, 24);
            Insumo adicionalTres   = new InsumoAccesorio(ETipoAccesorio.Pegamento, 10);
            Insumo adicionalCuatro = new InsumoAccesorio(ETipoAccesorio.Yute, 10);



            insumosAgregar += maderaUno;
            insumosAgregar += maderaUno;
            insumosAgregar += maderaSecundaria;
            insumosAgregar += telaUno;
            insumosAgregar += adicionalUno;
            insumosAgregar += adicionalDos;
            insumosAgregar += adicionalTres;
            insumosAgregar += adicionalCuatro;

            insumosAgregar += maderaUno;

            fabrica.AgregarInsumosAStock(insumosAgregar);

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("-------Insumos agregados con éxito-------------------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            Console.WriteLine("--Se itera de nuevo el stock de insumos----------------------------");
            foreach (Insumo i in fabrica.StockInsumos)
            {
                Console.WriteLine(i.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.ReadKey();
            Console.Clear();


            //2- Usuario da de alta un producto para agregar a la linea de producción

            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("--------Se van a cargar dos nuevos productos---------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            Producto      productoTorre   = new Torre(new Madera(ETipoMadera.Mdf, EForma.Tablon, Fabrica.CANTIDAD_MADERA_TORRE_PRINCIPAL), new Tela(EColor.Bordo, ETipoTela.Alfombra, Fabrica.CANTIDAD_TELA_TORRE), Torre.EModeloTorre.Queen, new Madera(ETipoMadera.Pino, EForma.Tubo, Fabrica.CANTIDAD_MADERA_TORRE_COLUMNA), 3);
            Producto      productoEstante = new Estante(new Madera(ETipoMadera.Pino, EForma.Tablon, Fabrica.CANTIDAD_MADERA_ESTANTE), new Tela(EColor.Rosa, ETipoTela.Alfombra, Fabrica.CANTIDAD_TELA_ESTANTE), 5);
            List <Insumo> faltantes       = new List <Insumo>();

            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("-----Productos cargados, se procedera a iterar-------------------------");
            Console.WriteLine("-----------------------------------------------------------------------");

            fabrica.AgregarProductoLineaProduccion(productoTorre, out faltantes);
            fabrica.AgregarProductoLineaProduccion(productoEstante, out faltantes);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");

            Console.ReadKey();
            Console.Clear();


            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("---Se van a ejecutar los procesos de la fábrica en orden---------------");
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();


            Console.WriteLine("\n-----------------------------------------------------------------------");


            Console.WriteLine("----------------Lijar Maderas------------------------------------------");

            //3- Ejecutar procesos de linea de Producción

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Lijar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Barnizar---------------------------------------------");

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Barnizar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Alfombrar--------------------------------------------");

            fabrica.EjecutarProcesoLineaProduccion(EProceso.Alfombrar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();

            Console.WriteLine("\n----------------Agregar Yute-----------------------------------------");
            fabrica.EjecutarProcesoLineaProduccion(EProceso.AgregarYute);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");

            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("\n----------------Ensamblar--------------------------------------------");
            fabrica.EjecutarProcesoLineaProduccion(EProceso.Ensamblar);

            foreach (Producto p in fabrica.LineaProduccion)
            {
                Console.WriteLine(p.Mostrar());
            }
            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();



            // 4 - Mudar productos terminados de la linea de producción al stock de productos terminados

            Console.WriteLine("-------------------------------------------------------------------------");
            Console.WriteLine("--Mudar productos terminados  al stock de productos terminados-----------");
            Console.WriteLine("-------------------------------------------------------------------------");


            fabrica.MudarProductosAStockTerminado();
            Console.WriteLine("-----------------------------------------------------------------------");
            Console.WriteLine("--------Iterar lista de productos terminados de la fabrica-------------");
            Console.WriteLine("-----------------------------------------------------------------------");


            foreach (Producto p in fabrica.StockProductosTerminados)
            {
                Console.WriteLine(p.Mostrar());
            }

            Console.Write("------------PRESIONE UNA TECLA PARA CONTINUAR--------------------------");
            Console.ReadKey();
            Console.Clear();


            // 5 - Guardar datos de fábrica en archivos XML
            Console.WriteLine("\n-----------------------------------------------------------------------");
            Console.WriteLine("----------------Persistir atributos de fábrica en archivos XML---------");
            Console.WriteLine("-----------------------------------------------------------------------");


            try
            {
                serviceXmlFabrica.Path = $"{AppDomain.CurrentDomain.BaseDirectory}Destino\\";
                serviceXmlFabrica.SaveXmlFabrica(fabrica);
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("----------------Datos guardados correctamente -------------------------");
                Console.WriteLine("-----------------------------------------------------------------------");
            }
            catch (SaveFactoryException e)
            {
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("----------------Errores al guardar los datos --------------------------");
                Console.WriteLine("-----------------------------------------------------------------------");
            }
        }