private void asignandoXArea(List <Variable> asignando, ListaSalones s) { Grupo gAnterior; Salon sAnterior; foreach (Variable v in asignando) { gAnterior = v.GHoraAnterior; if (gAnterior == null) { asignacionAleatoria(v, s); } else { sAnterior = s.busca(gAnterior.Cve_espacio); if (sAnterior != null && sAnterior.Disponible_para_grupo(v)) { v.Salon = sAnterior; } else { asignacionAleatoria(v, s); } } } }
private void ResuelveEmpalme(ListaVariables empalme) { ListaGrupos Temp; ListaVariables aux; Salon s; aux = empalme.Empalmados(); //Chequeo de empalme if (aux.Count > 1 && permiteEmpalmes.busca(aux[0].Cve_espacio) == null) { s = salones.busca(empalme[0].Cve_espacio); if (s == null) { return; //Si no encuentra el salon es porque es algo como Campo o asi. Se valen los empalmes } aux.SetSalones(salones); Temp = new ListaGrupos(empalme.EnSalonesFijos().Where(g => g.Salon_fijo == s.Cve_espacio).ToList()); if (Temp.Count() != 0)//Solo uno tiene preferencia, y a ese se le va a dar { AsignacionPreferencial(empalme, s); } else // Si no hay preferencial entonces se elegira por otro medio { AsignacionMejorEleccion(empalme, s); } } grupos.Actualiza(empalme); }
/// <summary> /// Asigna salones tomando en cuenta el semestre pasado, aqui no checa empalmes, solo si es el mismo profesor, grupo, y horario /// </summary> public void semestres_anteriores() { foreach (Variable g in grupos) { if (g.Cve_espacio == "" && salones.busca(g.Cve_espacio) != null) { g.Cve_espacio = g.salonAnioPasado(); GruposModificados.Add(g); } } }
public void SetSalones(ListaSalones salones) { Salon s; foreach (Variable v in this as IList <Variable> ) { s = salones.busca(v.Cve_espacio); if (s != null) { v.Salon = s; } } }