protected override void AddStateVectorToShowables()
        {
            ShowableStateVectors.Add(new VectorEstadoMostrableSimulador
            {
                Evento = PreviousStateVector.Evento,
                Clock  = PreviousStateVector.Clock.StripMilliseconds(),
                RandomProximaLlegadaVehiculo = PreviousStateVector.RandomProximaLlegadaVehiculo.Round(2),
                ProximaLlegadaVehiculo       = PreviousStateVector.ProximaLlegadaVehiculo.StripMilliseconds(),
                EstadoSurtidor1                      = PreviousStateVector.EstadoSurtidor1,
                CargaCombustibleSurtidor1            = PreviousStateVector.CargaCombustibleSurtidor1,
                TiempoCargaCombustibleSurtidor1      = PreviousStateVector.TiempoCargaCombustibleSurtidor1.StripMilliseconds(),
                FinCargaCombustibleSurtidor1         = PreviousStateVector.FinCargaCombustibleSurtidor1.StripMilliseconds(),
                RandomFinLimpiezaParabrisasSurtidor1 = PreviousStateVector.RandomFinLimpiezaParabrisasSurtidor1.Round(2),
                FinLimpiezaParabrisasSurtidor1       = PreviousStateVector.FinLimpiezaParabrisasSurtidor1.StripMilliseconds(),
                FinCobroSurtidor1                    = PreviousStateVector.FinCobroSurtidor1.StripMilliseconds(),
                ColaSurtidor1                        = CopiarColaSurtidor(Entity.Surtidor1),
                EstadoSurtidor2                      = PreviousStateVector.EstadoSurtidor2,
                CargaCombustibleSurtidor2            = PreviousStateVector.CargaCombustibleSurtidor2,
                TiempoCargaCombustibleSurtidor2      = PreviousStateVector.TiempoCargaCombustibleSurtidor2.StripMilliseconds(),
                FinCargaCombustibleSurtidor2         = PreviousStateVector.FinCargaCombustibleSurtidor2.StripMilliseconds(),
                RandomFinLimpiezaParabrisasSurtidor2 = PreviousStateVector.RandomFinLimpiezaParabrisasSurtidor2.Round(2),
                FinLimpiezaParabrisasSurtidor2       = PreviousStateVector.FinLimpiezaParabrisasSurtidor2.StripMilliseconds(),
                FinCobroSurtidor2                    = PreviousStateVector.FinCobroSurtidor2.StripMilliseconds(),
                ColaSurtidor2                        = CopiarColaSurtidor(Entity.Surtidor2),
                SumatoriaVehiculosAtendidos          = PreviousStateVector.SumatoriaVehiculosAtendidos,
                SumatoriaTiempoPermanenciaSistema    = PreviousStateVector.SumatoriaTiempoPermanenciaSistema.StripMilliseconds()
            });

            StripMillisecondsFromLastShowableVectorQueues();
        }
        private void StripMillisecondsFromLastShowableVectorQueues()
        {
            foreach (var item in ShowableStateVectors.Last().ColaSurtidor1)
            {
                item.Llegada = item.Llegada.StripMilliseconds();
            }

            foreach (var item in ShowableStateVectors.Last().ColaSurtidor2)
            {
                item.Llegada = item.Llegada.StripMilliseconds();
            }
        }
        protected override void EventRoutine()
        {
            if (EsLlegadaVehiculo())
            {
                ProgramarSiguienteLlegada();

                if (SurtidorEstaLibre(Entity.Surtidor1))
                {
                    Surtidor1AtiendeVehiculo(new Vehiculo(EstadoVehiculo.EnAtencion, CurrentStateVector.Clock));
                }
                else if (SurtidorEstaLibre(Entity.Surtidor2))
                {
                    Surtidor2AtiendeVehiculo(new Vehiculo(EstadoVehiculo.EnAtencion, CurrentStateVector.Clock));
                }
                else if (Surtidor1ColaMenorIgualSurtidor2())
                {
                    AgregarVehiculoColaSurtidor1();
                }
                else
                {
                    AgregarVehiculoColaSurtidor2();
                }
            }

            if (EsFinCargaCombustibleSurtidor1())
            {
                CurrentStateVector.FinCargaCombustibleSurtidor1 = null;
            }

            if (EsFinCargaCombustibleSurtidor2())
            {
                CurrentStateVector.FinCargaCombustibleSurtidor2 = null;
            }

            if (EsFinLimpiezaParabrisasSurtidor1())
            {
                CurrentStateVector.FinLimpiezaParabrisasSurtidor1 = null;
            }

            if (EsFinLimpiezaParabrisasSurtidor2())
            {
                CurrentStateVector.FinLimpiezaParabrisasSurtidor2 = null;
            }

            if (EsFinCobroSurtidor1())
            {
                FinalizarCobroSurtidor1();

                if (ColaSurtidorVacia(Entity.Surtidor1))
                {
                    Surtidor1QuedaLibre();
                }
                else
                {
                    Surtidor1AtiendeVehiculo();
                }
            }

            if (EsFinCobroSurtidor2())
            {
                FinalizarCobroSurtidor2();

                if (ColaSurtidorVacia(Entity.Surtidor2))
                {
                    Surtidor2QuedaLibre();
                }
                else
                {
                    Surtidor2AtiendeVehiculo();
                }
            }

            if (CurrentStateVector.ColaSurtidor1.Count(x => x.Estado == EstadoVehiculo.EnAtencion) > 1)
            {
            }

            if (ShowableStateVectors.LastOrDefault()?.ColaSurtidor1.Count(x => x.Estado == EstadoVehiculo.EnAtencion) > 1)
            {
            }
        }