/// <summary> /// Evento que ejecuta el this.iTimerBanner para ir cambiando los BannersDeslizantes /// </summary> private void timerBanner_Elapsed(Object source, ElapsedEventArgs e) { //Detenemos el timer double intervalo; this.iTimerBanner.Stop(); this.BannerDeslizanteStop(); string texto = ""; DateTime fechaActual = DateTime.Now; TimeSpan horaActual = new TimeSpan(fechaActual.Hour, fechaActual.Minute, fechaActual.Second); //Buscamos el próximo banner a pasar: // que fechaActual sea mayor o igual a FechaInicio y menor o igual a FechaFin --> FechaInicio<=fechaActual<=FechaFin //HoraInicio <= horaActual < HoraFin //Debería devolver un solo banner List <Banner> posiblesBanners = this.iControladorDominio.BuscarBannerPorAtributo (x => x.FechaInicio.CompareTo(fechaActual) <= 0 && x.FechaFin.CompareTo(fechaActual) >= 0 && x.HoraInicio.CompareTo(horaActual) <= 0 && x.HoraFin.CompareTo(horaActual) > 0 ); //List<Banner> todosLosBanners = this.iControladorDominio.ObtenerTodosLosBanners(); //List<Banner> posiblesBanners = todosLosBanners.Where // (x => x.FechaInicio.CompareTo(fechaActual) <= 0 && x.FechaFin.CompareTo(fechaActual) >= 0 // && x.HoraInicio.CompareTo(horaActual) <= 0 && x.HoraFin.CompareTo(horaActual) > 0 // ).ToList(); if (posiblesBanners.Count != 0) //Encontró un elemento { Banner bannerAPasar = posiblesBanners[0]; //Cambia el intervalo al tiempo del nuevo banner a pasar: intervalo = bannerAPasar.HoraFin.Subtract(horaActual).TotalMilliseconds; //ASIGNACION DEL BANNER A LA VENTANA PARA QUE SE PASE SOLO: texto = bannerAPasar.Descripcion; texto += ": "; List <string> listaInformacion = bannerAPasar.Leer().ToList(); for (int i = 0; i < listaInformacion.Count; i++) { texto += listaInformacion[i] + " | "; } } else //No encontró nigun banner, no pasa nada, y espera 15 minutos hasta el proximo banner { intervalo = IntervaloAlProxCuartoDeHora(horaActual); } //Comienza el conteo para el próximo banner this.iTimerBanner.Interval = intervalo; while (texto.Length < this.bannerDeslizante.CaracteresAMostrar) { texto += " " + texto; } this.BannerDeslizanteSetTexto(texto); this.BannerDeslizanteStart(); }