public bool MoverAscensorAbajo(Pisos piso)
        {
            PictureBox PisoParada = NivelEdificio(piso);

            if (AscensorPictureBox.Location.Y >= PisoParada.Location.Y)
            {
                ImagenPersona ImagenInterna = Lista.Find(x => x.PisoDireccion == piso) ?? new ImagenPersona();
                PointAscensor.Y             = PisoParada.Location.Y;
                AscensorPictureBox.Location = PointAscensor;
                MoverAscensor = false;

                if (ImagenInterna.Id > 0)
                {
                    StateTextBox.AppendText($"Salieron {ListaSalida.Where(x => x.PisoDireccion == piso).ToList().Count() } personas del elevador{Environment.NewLine}");
                    EliminarControles(ListaSalida.Where(x => x.PisoDireccion == piso).ToList());
                }

                Lista.Remove(Lista.Find(x => x.PisoDireccion == piso));
                PisoActual = piso;
                ListaSalida.RemoveAll(x => x.PisoDireccion == piso);
                ListaSalida.RemoveAll(x => x.PisoDireccion == Pisos.SinPiso);
                CambiarLabel("Esperando que seleccione un piso", Color.White, Color.Green);

                CantidadPersonasLabel.Text = ListaSalida.Count(x => x.Peso > 0).ToString();
                PesoElevadorLabel.Text     = ListaSalida.Sum(x => x.Peso).ToString();
                return(true);
            }
            return(false);
        }
        private void OnTimer_Tick(object sender, EventArgs e)
        {
            if (Lista.Sum(x => x.Peso) <= 0)
            {
                OnTimer.Stop();
            }

            if (CapturarGente)
            {
                PesoTotalAcumulado = ListaSalida.Sum(x => x.Peso);
                PersonaGlobal      = ObtenerImagenPorPisoControles(PisoActual) ?? new ImagenPersona();
                if (PesoTotalAcumulado + PersonaGlobal.Peso >= PesoTotal)
                {
                    StateTextBox.AppendText($"La persona que intento ingresar tenia {PersonaGlobal.Peso} sobrepasando el limite con {(PesoTotalAcumulado + PersonaGlobal.Peso) - PesoTotal} {Environment.NewLine}");
                    CambiarLabel("Ascensor Lleno.", Color.White, Color.Red);
                    CapturarGente = false;
                    MoverAscensor = true;
                    ListaBotones.ForEach(x => x.Enabled = true);
                    ObtenerButton(PisoActual).Enabled   = false;
                }
                else
                {
                    PersonaGlobal.PisoDireccion = AquePiso;
                    if (PersonaGlobal.Id != 0)
                    {
                        if (!ListaSalida.Exists(x => x.Id == PersonaGlobal.Id))
                        {
                            ListaSalida.Add(PersonaGlobal);
                        }
                    }
                    else
                    {
                        ListaSalida.Add(new ImagenPersona()
                        {
                            PisoDireccion = AquePiso, Peso = 0
                        });
                    }

                    StateTextBox.AppendText($"Peso Agregado {PersonaGlobal.Peso} {Environment.NewLine}");
                    CantidadPersonasLabel.Text = ListaSalida.Count(x => x.Peso > 0).ToString();
                    PesoElevadorLabel.Text     = ListaSalida.Sum(x => x.Peso).ToString();
                    CapturarGente = false;
                    MoverPersonas = true;
                    MoverAscensor = false;
                    CambiarLabel("Esperando que seleccione un piso", Color.White, Color.Green);
                }
            }
            if (MoverPersonas)
            {
                AnimarImagen(PersonaGlobal.PictureBox);
                if (MoverPersonaHorizontal(PersonaGlobal.PictureBox, 25))
                {
                    AsignarPosicionPersona(PersonaGlobal.PictureBox);
                    if (PesoTotalAcumulado <= PesoTotal)
                    {
                        CapturarGente = false;
                        MoverPersonas = false;

                        if (ListaSalida.Count(x => x.PisoOrigen == PisoActual) == Lista.Count(x => x.PisoOrigen == PisoActual))
                        {
                            MoverPersonas = false;
                            MoverAscensor = true;
                        }
                        else
                        {
                            ListaBotones.ForEach(x => x.Enabled = true);
                            ObtenerButton(PisoActual).Enabled   = false;
                        }
                        CambiarLabel("Esperando que seleccione un piso", Color.White, Color.Green);
                    }
                    else
                    {
                        MoverPersonas = false;
                        MoverAscensor = true;
                    }
                }
                else
                {
                    CambiarLabel("Persona en movimiento", Color.Black, Color.Yellow);
                }
            }
            if (MoverAscensor)
            {
                if ((int)PisoActual <= (int)AquePiso)
                {
                    Pisos ppp;
                    if (ListaSalida.Count == 0)
                    {
                        ppp = AquePiso;
                    }
                    else
                    {
                        ppp = ListaSalida.FirstOrDefault().PisoDireccion;
                    }
                    if (!MoverAscensorArriba(ppp))
                    {
                        MoverPersonaVertical(ListaSalida, DecrementoEnY);
                        MoverAscensorVertical(DecrementoEnY);
                        CambiarLabel("Ascensor en movimiento, no presione nada", Color.White, Color.Red);
                    }
                    else
                    {
                        ListaBotones.ForEach(x => x.Enabled = true);
                        ObtenerButton(PisoActual).Enabled   = false;
                        CambiarLabel("Esperando que seleccione un piso", Color.White, Color.Green);
                    }
                }
                else
                {
                    Pisos ppp;
                    if (ListaSalida.Count == 0)
                    {
                        ppp = AquePiso;
                    }
                    else
                    {
                        ppp = ListaSalida.FirstOrDefault().PisoDireccion;
                    }

                    if (!MoverAscensorAbajo(ppp))
                    {
                        MoverPersonaVertical(ListaSalida, DecrementoEnY);
                        MoverAscensorVertical(DecrementoEnY);
                        CambiarLabel("Ascensor en movimiento, no presione nada", Color.White, Color.Red);
                    }
                    else
                    {
                        ListaBotones.ForEach(x => x.Enabled = true);
                        ObtenerButton(PisoActual).Enabled   = false;
                        CambiarLabel("Esperando que seleccione un piso", Color.White, Color.Green);
                    }
                }
            }

            Invalidate();
        }