예제 #1
0
        private void obtenerActual(int idlab)
        {
            List<Horario> lstHoras = new List<Horario>();

            #region Inicializacion
            Dictionary<string, string> dias = new Dictionary<string, string>();
            dias.Add("MONDAY", "LUNES");
            dias.Add("TUESDAY", "MARTES");
            dias.Add("WEDNESDAY", "MIERCOLES");
            dias.Add("THURSDAY", "JUEVES");
            dias.Add("FRIDAY", "VIERNES");
            dias.Add("SATURDAY", "SABADO");
            dias.Add("SUNDAY", "DOMINGO");

            HorarioBLL horarios = new HorarioBLL();
            AvisoBLL avisos = new AvisoBLL();
            AlumnoBLL alumnos = new AlumnoBLL();
            #endregion

            lstAvisos = avisos.ObtenerAll();
            misSesiones.Add(alumnos.GetByLab(idlab));

            string diaSn = string.Empty;
            string diaActual = DateTime.Now.DayOfWeek.ToString();
            string horaActual = DateTime.Now.Hour.ToString() + ":00";

            try
            {
                int hraSer = int.Parse(horaActual.Replace(":00", ""));
                dias.TryGetValue(diaActual.ToUpper(), out diaSn);

                // OPTIMIZACION
                var HrasDelDia = horarios.ObtenerByLab(idlab)
                    .Where(t => t.Dia == diaSn)
                    .OrderBy(o=> o.HoraInicio)
                    .ToList();

                //
                var hraAct = HrasDelDia
                  .Where(t => t.HoraInicio == horaActual ||
                      int.Parse(t.HoraFin.Replace(":00", "")) > hraSer)
                  .FirstOrDefault();
                var hrsPos = HrasDelDia
                    .Where(t => int.Parse(t.HoraInicio.Replace(":00", "")) > hraSer)
                    .Take(3).ToList();

                //var hraAct = horarios.ObtenerByLab(idlab)
                //    .Where(t => t.Dia == diaSn && t.HoraInicio == horaActual)
                //    .FirstOrDefault();
                //var hrsPos = horarios.ObtenerByLab(idlab)
                //    .Where(t => t.Dia == diaSn && int.Parse(t.HoraInicio.Replace(":00", "")) > int.Parse(tmpA))
                //    .Take(3).ToList();

                if (hraAct != null) lstHoras.Add(hraAct);
                lstHoras.AddRange(hrsPos);
                misHorarios.Add(lstHoras);
                if (isInicial)
                {
                    isInicial = false;
                    xLab = misHorarios.Count ;
                }
            }
            catch (Exception)
            {
                lstHoras.Clear();
                //MessageBox.Show("Error >.<!! " + ex.Message);
            }
        }