Beispiel #1
0
        private TabItem dibujaEquipos(laboratorio lab)
        {
            Grid grid = new Grid();
            TabItem tabItem = new TabItem();
            List<uctComputadora> compus = new List<uctComputadora>();
            //grid.Children.Add(AgregarPizarron());
            AlumnoBLL alumnos = new AlumnoBLL();
            var sesiones = alumnos.getActivas(lab.Numero);
            for (int j = 0; j < lab.Equipos.Count; j++)
            {
                compus.Add(new uctComputadora(lab.Numero, lab.Equipos[j].Numero));
                compus[j].Margin = new Thickness(lab.Equipos[j].X - 100, lab.Equipos[j].Y, 0.0, 0.0);
                compus[j].MouseDown += new MouseButtonEventHandler(Compu_MouseDown);
                //grid.Children.Add(compus[j]);
            }

            foreach (var se in sesiones)
            {
                compus[se.SE_NUM_EQP].EstadoEquipo = uctComputadora.Estado.Ocupada;
                compus[se.SE_NUM_EQP].Usuario = se.AS_US_DESCR;
            }
            for (int i = 0; i < compus.Count; i++)
                grid.Children.Add(compus[i]);

            tabItem.Content = grid;
            tabItem.Header = string.Format("Laboratorio {0}", lab.Numero);

            return tabItem;
        }
        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);
            }
        }