コード例 #1
0
        /// <summary>
        /// Repito el ciclo y lo corto -> Estado=entregado
        /// </summary>
        public void MockClicloDeVida()
        {
            while (true)
            {
                InformaEstado.Invoke(this, EventArgs.Empty);



                Thread.Sleep(10000);
                if (this.Estado == EEstado.Entregado)
                {
                    break;
                }
                this.Estado++;
            }

            try
            {
                PaqueteDAO.Insertar(this);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #2
0
        public void MockCicloDeVida()
        {
            while (this.Estado != EEstado.Entregado)
            {
                Thread.Sleep(1000);

                if (this.Estado == EEstado.Ingresado)
                {
                    this.Estado = EEstado.EnViaje;
                }
                else if (this.Estado == EEstado.EnViaje)
                {
                    this.Estado = EEstado.Entregado;
                }

                InformaEstado.Invoke(this, new EventArgs());
            }

            try
            {
                PaqueteDAO.Insertar(this);
            }
            catch (Exception)
            {
            }
        }
コード例 #3
0
        /// <summary>
        /// Metodo que se ejecutara al iniciar el hilo
        /// correspondiente a cada paquete. Simulara el ciclo
        /// de vida del paquete actualizando su estado cada 4 segundos
        /// y finalmente guardando sus datos en la base de datos una vez
        /// entregado
        /// </summary>
        public void MockCicloDeVida()
        {
            try
            {
                // Mientras el estado no sea Entregado continuo
                // actualizando el estado cada 4 segundo e invocando
                // InformaEstado
                while (this.Estado != EEstado.Entregado)
                {
                    Thread.Sleep(4000);
                    this.Estado = (EEstado)(((int)this.Estado) + 1);
                    InformaEstado.Invoke(this, EventArgs.Empty);
                }

                // Una vez que el paquete fue entregado se guarda en la base de datos
                PaqueteDAO.Insertar(this);
            }
            catch (ThreadAbortException ex)
            {
                string excepcion = $"{ex.Message} // {ex.StackTrace}";
                excepcion.Guardar("Log de Excepciones");
            }
            // Si ocurrio un error guardando el paquete en la base de datos invoco
            // un evento que avisa de este error
            catch (Exception ex)
            {
                InformaErrorDAO.Invoke();
            }
        }
コード例 #4
0
ファイル: Paquete.cs プロジェクト: TrittoG/tp_laboratorio_2
        /// <summary>
        /// metodo que cambia el estado del paquete e invoca a informar estado
        /// </summary>
        public void MockCicloDeVida()
        {
            while (this.Estado != EEstado.Entregado)
            {
                System.Threading.Thread.Sleep(500);

                if (this.Estado == EEstado.Ingresando)
                {
                    this.Estado = EEstado.EnViaje;
                }
                else
                {
                    this.Estado = EEstado.Entregado;
                }

                InformaEstado.Invoke(new object { }, EventArgs.Empty);
            }

            try
            {
                PaqueteDAO.Insertar(this);
            }
            catch (Exception e)
            {
                SQLError.Invoke(e.Message);
            }
        }
コード例 #5
0
        /// <summary>
        /// Metodo que emula el ciclo de vida de un paquete,
        /// cambiando this.Estado estado secuencialmente segun indica el enumerado EEstado,
        /// cada 10 segundos. Invocando al evento InformaEstado en cada paso, y guardando
        /// el paquete en la base de datos al llegar al último elemento del enumerado,
        /// utilizando la clase PaqueteDAO
        /// </summary>
        public void MockCicloDeVida()
        {
            do
            {
                InformaEstado.Invoke(this, null);
                System.Threading.Thread.Sleep(10000);

                //Recorre los distintos tipos de estado hasta el ultimo
                this.Estado++;
            } while (this.Estado != EEstado.Entregado);

            //Inserta en base de datos
            try
            {
                PaqueteDAO.Insertar(this);
            }
            //Si hay excepcion, invoca el evento ErrorBaseDeDatos con un diccionario <paquete, excepcion>
            catch (Exception dbException)
            {
                Dictionary <Paquete, Exception> exceptionPaquete = new Dictionary <Paquete, Exception>()
                {
                    { this, dbException }
                };

                ErrorBaseDeDatos.Invoke(exceptionPaquete, null);
            }

            InformaEstado.Invoke(this, null);
        }
コード例 #6
0
 public void MockCicloDeVida()
 {
     while (this.Estado != EEstado.Entregado)
     {
         Thread.Sleep(4000);
         this.Estado = this.Estado + 1;
         InformaEstado.Invoke(this, null);
     }
     PaqueteDAO.Insertar(this);
 }
コード例 #7
0
 public void MockCicloDeVida()
 {
     do
     {
         Thread.Sleep(4000);
         this.Estado++;
         InformaEstado.Invoke(this, null);
     } while (this.Estado < (EEstado)2);
     PaqueteDAO.Insertar(this);
 }
コード例 #8
0
ファイル: Paquete.cs プロジェクト: marianoar/tp_laboratorio_2
 /// <summary>
 ///
 /// ingreso el paquete en la base de datos
 /// </summary>
 public void MockCicloDeVida()
 {
     try
     {
         while (this.estado != EEstado.Entregado)
         {
             Thread.Sleep(10000);
             estado++;
             InformaEstado.Invoke(this, new EventArgs());
         }
         PaqueteDAO.Insertar(this);
     }
     catch (Exception)
     {
     }
 }
コード例 #9
0
 public void MockCicloDeVida()
 {
     while (this.Estado != EEstado.Entregado)
     {
         System.Threading.Thread.Sleep(10000);
         this.Estado++;
         InformaEstado.Invoke(this, EventArgs.Empty);
     }
     try
     {
         PaqueteDAO.Insertar(this);
     }
     catch (TrackingIdRepetidoException tire)
     {
         InformaNoGuardo.Invoke(tire.Message);
     }
 }
コード例 #10
0
        /// <summary>
        /// Simulador del ciclo de vida de un paquete, cada 4 segundos se lanza un evento
        /// luego de un cambio de estado automatico. el evento informa del cambio de estado y
        /// reimprime la informacion en la pantalla.
        /// finalmente insertará el paquete a la base de datos.
        /// </summary>
        public void MockCicloDeVida()
        {
            Thread.Sleep(4000);
            this.estado = EEstado.EnViaje;
            InformaEstado.Invoke(this, new EventArgs());

            Thread.Sleep(4000);
            this.estado = EEstado.Entregado;
            InformaEstado.Invoke(this, new EventArgs());
            try
            {
                PaqueteDAO.Insertar(this);
            }
            catch (SqlReadOrWriteException ex)
            {
                InformaExceptcion.Invoke(ex);
            }
        }
コード例 #11
0
        /// <summary>
        /// Actualiza cada 4 segundos el estado del producto
        /// Pasando por enstock -> vendido
        /// </summary>
        public void CicloDeVida()
        {
            while (this.estado != Producto.EEstado.Vendido)
            {
                System.Threading.Thread.Sleep(4000);

                switch (this.estado)
                {
                case EEstado.EnStock:
                    this.estado = EEstado.Vendido;
                    break;
                }

                InformaEstado.Invoke(this, new EventArgs());
            }

            ProductoDAO.Insertar(this);
        }
コード例 #12
0
ファイル: Paquete.cs プロジェクト: xTomluca/ProLab2
        /// <summary>
        /// Encargado de cambio de estado de los paquetes
        /// </summary>
        public void MockCicloDeVida()
        {
            do
            {
                InformaEstado.Invoke(this, null);
                Thread.Sleep(4000);
                this.Estado++;
            }while (this.Estado != EEstado.Entregado);

            try
            {
                PaqueteDAO.Insertar(this);
            }
            catch (Exception)
            {
                this.BaseSql.Invoke(this, null);
            }
            InformaEstado.Invoke(this, null);
        }
コード例 #13
0
        /// <summary>
        /// Actualiza el estado de los nuevos pedidos cada 4 segundos.
        /// Mientras no esté Listado, seteo estado cada 4 segundos.
        /// </summary>
        public void EtapasPedido()
        {
            while (this.estado != EEstado.Listo)
            {
                Thread.Sleep(4000);

                switch (this.estado)
                {
                case EEstado.Ingresado:
                    this.estado = EEstado.EnPreparacion;
                    break;

                case EEstado.EnPreparacion:
                    this.estado = EEstado.Listo;
                    break;
                }

                InformaEstado.Invoke(this);
            }
        }
コード例 #14
0
        /// <summary>
        /// Actualiza cada 4 segundos el estado del paquete
        /// Pasando por Ingresado -> EnViaje -> Entregado
        /// </summary>
        public void MockCicloDeVida()
        {
            while (this.estado != Paquete.EEstado.Entregado)
            {
                System.Threading.Thread.Sleep(4000);

                switch (this.estado)
                {
                case EEstado.Ingresado:
                    this.estado = EEstado.EnViaje;
                    break;

                case EEstado.EnViaje:
                    this.estado = EEstado.Entregado;
                    break;
                }

                InformaEstado.Invoke(this, new EventArgs());
            }

            PaqueteDAO.Insertar(this);
        }