Ejemplo n.º 1
0
        public Grupo(DataRow r, IDictionary <string, string> h, IDictionary <string, string> def = null, Conexion c = null, IList <Salon> salones = null)
        {
            Set_From_Row(r, h, def);

            if (c != null)
            {
                Set_GruposHorasAnteriores(c.Grupos_HoraAnterior(RPE, hora_ini, ciclo), Conexion.DGruposBD);
                Set_NecesidadesGrupo(c.Grupo_Necesidades(Cve_materia, tipo, rpe.ToString()));
                Set_RequerimientosProfesor(c.Profesor_Necesidades(RPE.ToString()));
                Set_GruposOtrosSemestres(c.Grupos_SemestresAnteriores(cve_materia, ciclo, rpe.ToString(), num_Grupo, horario_ini), Conexion.DGruposBD);

                if (salones != null)
                {
                    Set_SalonesPosibles(c.Salones_Posibles(cve_materia), salones);
                }
                else
                {
                    salones_Posibles = new ListaSalones();
                }
            }
        }
Ejemplo n.º 2
0
        private void SpreadReadyPackage(int codec, byte[] data)
        {
            qrpe.Enqueue(new RPE()
            {
                Codec = codec,
                Data  = data
            });

            lock (lock_threadIsStarted)
            {
                if (threadIsStarted)
                {
                    return;
                }

                threadIsStarted = true;
            }

            Action spreadAction = () =>
            {
                RPE rpe = null;

                while (true)
                {
                    lock (lock_threadIsStarted)
                    {
                        rpe = qrpe.Dequeue();
                        if (rpe == null)
                        {
                            threadIsStarted = false;
                            return;
                        }
                    }

                    this.packetParser(rpe.Codec, rpe.Data);
                }
            };

            Task.Run(spreadAction);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Constructor por copia
        /// </summary>
        /// <remarks>Es utilizado como base para ls metodos que heredan de la clase.
        /// Ademas que permite volver a solicitar la informacion si esta no estaba cubierta</remarks>
        /// <param name="g"></param>
        /// <param name="c"></param>
        /// <param name="salones"></param>
        public Grupo(Grupo g, Conexion c = null, IList <Salon> salones = null)
        {
            cve_materia   = g.cve_materia;
            grupo         = g.grupo;
            tipo          = g.tipo;
            lunes_ini     = g.lunes_ini;
            lunes_fin     = g.lunes_fin;
            martes_ini    = g.martes_ini;
            martes_fin    = g.martes_fin;
            miercoles_ini = g.miercoles_ini;
            miercoles_fin = g.miercoles_fin;
            jueves_ini    = g.jueves_ini;
            jueves_fin    = g.jueves_fin;
            viernes_ini   = g.viernes_ini;
            viernes_fin   = g.viernes_fin;
            sabado_ini    = g.sabado_ini;
            sabado_fin    = g.sabado_fin;
            cupo          = g.cupo;
            inscritos     = g.inscritos;
            Cve_espacio   = g.Cve_espacio;
            salonBD       = g.salonBD;
            rpe           = g.rpe;
            ciclo         = g.ciclo;

            if (c == null)
            {
                requerimientos_Salon = new List <Requerimiento_Valor>();
                Requerimiento_Valor req;
                if (g.requerimientos_Salon != null)
                {
                    foreach (Requerimiento_Valor ngR in g.requerimientos_Salon)
                    {
                        req = new Requerimiento_Valor();
                        req.requerimiento = ngR.requerimiento;
                        req.valor         = ngR.valor;
                        requerimientos_Salon.Add(req);
                    }
                }


                plantaBaja = g.plantaBaja;
                salon_fijo = g.salon_fijo;

                salones_Posibles = g.Salones_posibles;
                HoraAnterior     = g.HoraAnterior;
                otrosSemestres   = g.otrosSemestres;
            }
            else
            {
                Set_GruposHorasAnteriores(c.Grupos_HoraAnterior(RPE, hora_ini, ciclo), Conexion.DGruposBD);
                Set_NecesidadesGrupo(c.Grupo_Necesidades(Cve_materia, tipo, rpe.ToString()));
                Set_RequerimientosProfesor(c.Profesor_Necesidades(RPE.ToString()));
                Set_GruposOtrosSemestres(c.Grupos_SemestresAnteriores(cve_materia, ciclo, rpe.ToString(), num_Grupo, horario_ini), Conexion.DGruposBD);

                if (salones != null)
                {
                    Set_SalonesPosibles(c.Salones_Posibles(cve_materia), salones);
                }
                else
                {
                    salones_Posibles = new ListaSalones();
                }
            }
        }