Exemplo n.º 1
0
        /// <summary>
        /// El método recibe una variable del tipo EProceso indicando el proceso a realizar y recorre la lista de linea de produccion para ejecutar dicho proceso
        /// cuando corresponda, devolviendo la cantidad de productos a los cuales se les aplico el proceso.
        /// </summary>
        /// <param name="proceso"></param>
        /// <returns></returns>
        public int EjecutarProcesoLineaProduccion(EProceso proceso)
        {
            int output = 0;

            if (proceso != EProceso.Despachar)
            {
                foreach (Producto producto in this.ServicioProducto.GetAll())
                {
                    bool procesoRealizado = false;
                    switch (proceso)
                    {
                    case EProceso.Lijar:

                        procesoRealizado = producto.LijarMaderaProducto();
                        ServicioProducto.UpdateEntity(producto);
                        break;

                    case EProceso.Barnizar:
                        if (producto is Estante)
                        {
                            procesoRealizado = ((Estante)producto).BarnizarProducto();
                            ServicioProducto.UpdateEntity(producto);
                        }
                        break;

                    case EProceso.Alfombrar:
                        procesoRealizado = producto.AlfombrarProducto();
                        ServicioProducto.UpdateEntity(producto);
                        break;

                    case EProceso.AgregarYute:
                        if (producto is Torre)
                        {
                            procesoRealizado = ((Torre)producto).AgregarYute();
                            ServicioProducto.UpdateEntity(producto);
                        }
                        break;

                    case EProceso.Ensamblar:
                        procesoRealizado = producto.EnsamblarProducto();
                        ServicioProducto.UpdateEntity(producto);
                        break;
                    }
                    if (procesoRealizado)
                    {
                        output++;
                    }
                }

                EmitirEvento();
            }
            else
            {
                output = MudarProductosAStockTerminado();
            }

            return(output);
        }