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(); } } }
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); }
/// <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(); } } }