public JsonResult CargaExcel_BD(string excel, string sheet, string ciclo) { //TODO: Hacer validaciones de ciclo por si se anota mal object[] res = new object[] { true, "" }; Conexion c; string excelDir = Server.MapPath("~/Archivos/") + excel; try { c = new Conexion(Conexion.datosConexion, excelDir, ciclo); c.Sheet = sheet; ListaGrupos grupos = c.IGrupos_Light(ciclo); c.Grupos_Carga(grupos, null); } catch (Exception ex) { res[0] = false; res[1] = ex.Message; } return(new JsonResult() { Data = res, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
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); }
public void Conexion_ExportacionPartes_Test() { int gruposTotales = 0; int gruposRes = 0; try { Conexion c = new Conexion(); LibroExcel excel = new LibroExcel(@"exp_2016_2017_II.xlsx", "2016-2017/II", "T"); ListaGrupos grupos = new ListaGrupos(c.Grupos("2016-2017/I", 7, 8, false)); ListaGrupos grupos2 = new ListaGrupos(c.Grupos("2016-2017/I", 8, 9, false)); gruposTotales = grupos.Count() + grupos2.Count(); excel.EscribeGrupos(grupos, "prueba02"); excel.EscribeGrupos(grupos2, "prueba02"); Conexion c2 = new Conexion(Conexion.datosConexion, @"exp_2016_2017_II.xlsx", "2016-2017/I", "T"); c2.Sheet = "prueba02"; grupos = new ListaGrupos(c2.Grupos("2016-2017/I")); gruposRes = grupos.Count(); Assert.IsFalse(gruposTotales != gruposRes, "No son los grupos"); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void CargarGrupos() { if (App.Global.CadenaConexion == null) { ListaGrupos.Clear(); return; } ListaGrupos = BdGruposGraficos.getGrupos(); }
/// <summary> /// Constructor del Individuo. /// Inicializa el arreglo de cromosomas. /// </summary> /// <param name="salonesDisponibles">Lista de salones a considerar para la interacion del algoritmo</param> public Individuo(ListaGrupos gruposPorAsignar, int hora) { cromosomas = new List <Variable>(); foreach (Grupo g in gruposPorAsignar) { cromosomas.Add(new Variable(g, hora)); } }
public ListaVariables(ListaGrupos grupos) { materias = grupos.Materias; profesores = grupos.Profesores; foreach (Grupo g in grupos) { this.grupos.Add(new Variable(g, 0)); } }
private void QuitaSalon(ListaGrupos empalmes, Grupo excepto = null) { foreach (Grupo g in empalmes) { if (excepto != null && excepto.cve_full != g.cve_full) { g.Cve_espacio = ""; } } }
public void Conexion_Importacion_Excel_Test() { try { Conexion c = new Conexion(Conexion.datosConexion, @"exp_2016_2017_II.xlsx", "T"); c.Sheet = "prueba01_2016_2017_II"; ListaGrupos grupos = new ListaGrupos(c.Grupos("2016-2017/II")); } catch (Exception ex) { Assert.Fail(ex.Message); } }
/// <summary> /// Checa que haya estado en ese salon el año pasado /// </summary> /// <param name="salon"></param> /// <returns>Puntos dependiendo del semestre en el que estubo</returns> public float ValorSemestrePasado(Salon salon = null) { Salon s = salon != null ? salon : Salon; if (s != null) { ListaGrupos semestres = otrosSemestres.EnSalon(s.Cve_espacio); if (semestres.Count() != 0) { return((new ListaVariables(semestres).OrdenarPorCiclo() as IList <Variable>)[0].fCiclo); } } return(0); }
public void GuardarGrupos() { try { HayCambios = false; if (ListaGrupos != null && ListaGrupos.Count > 0) { BdGruposGraficos.GuardarGrupos(ListaGrupos.Where(gg => gg.Nuevo || gg.Modificado)); } } catch (Exception ex) { Mensajes.VerError("GraficosViewModel.GuardarGrupos", ex); HayCambios = true; } finally { } }
public ChecaEmpalmes(ListaGrupos _grupos, IList <Salon> _salones) { EmpalmesResueltos = new List <Grupo>(); grupos = new ListaVariables(_grupos); salones = new ListaSalones(_salones); permiteEmpalmes = salones.PermiteEmpalmes(); if (Grupos.Count != 0) { ciclo = Grupos[0].Ciclo; } else { ciclo = ""; } }
public void Conexion_NuevoExel_Test() { try { Conexion c = new Conexion(); Grupo g = new Grupo(c.Querry("Select * from asignacion.ae_horario where cve_materia = '1001'").Rows[0], c.DGrupos); LibroExcel excel = new LibroExcel(@"excel.xlsx", "2016-2017/II", "T"); ListaGrupos grupos = new ListaGrupos(); grupos.Add(g); excel.EscribeGrupos(grupos, "prueba", c.Materias_AsDictionary(), c.Profesores_AsDicctionary()); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void Conexion_Exportacion_Test() { try { Conexion c = new Conexion(); LibroExcel excel = new LibroExcel(@"exp_2016_2017_II.xlsx", "2016-2017/II", "T"); ListaGrupos grupos = new ListaGrupos(c.Grupos("2016-2017/II", 7, 8)); var profesores = c.Profesores_AsDicctionary(); var materias = c.Materias_AsDictionary(); excel.EscribeGrupos(grupos, "prueba01_2016_2017_II", materias, profesores); } catch (Exception ex) { Assert.Fail(ex.Message); } }
/// <summary> /// Constructor de la iteracion del algoritmo /// </summary> /// <param name="grupos">Lista de grupos a asignar</param> /// <param name="salones">Lista de salones disponibles para asignar</param> public Algoritmo(ListaGrupos grupos, ListaSalones salones, int hora, int _tamPoblacion = 5, int _generaciones = 50) { this.grupos = new ListaVariables(grupos.SinAsignar()); this.grupos = this.grupos.EnHoras(hora, hora + 1); this.grupos = this.grupos.EnDias(); this.salones = salones.Asignables(); this.hora = hora; tamPoblacion = _tamPoblacion; generaciones = _generaciones; errores = new ListaVariables(); poblacion = new Individuo[tamPoblacion]; mejorPoblacion = new Individuo[tamPoblacion]; for (int i = 0; i < tamPoblacion; i++) { poblacion[i] = new Individuo(Grupos, hora); poblacion[i].asignaSalones(Salones); } }
/// <summary> /// Busca los empalmes en el horario designado y comienza a acomodarlos /// </summary> /// <returns></returns> public void ejecuta() { List <ListaVariables> empalmados = new List <ListaVariables>(); ListaGrupos checando = new ListaGrupos(); //obtiene grupos de grupos empalmados empalmados = new ListaVariables(grupos.NoEn(permiteEmpalmes)).AgrupaGruposEmpalmados(); foreach (ListaVariables empalme in empalmados) { try { ResuelveEmpalme(empalme); } catch (Exception)//Se le quita el salon a todos { QuitaSalon(empalme); } foreach (Grupo g in empalme) { EmpalmesResueltos.Add(g); } } }
public RevisionEmpalmes(ListaGrupos _grupos, IList <Salon> _salones) : base(_grupos, _salones) { }
public AlgoritmoGenetico(ListaGrupos grupos, ListaSalones salones, int hora, int _tamPoblacion = 5, int _generaciones = 50) : base(grupos, salones, hora, _tamPoblacion, _generaciones) { }
private static void imprimeLista(ListaGrupos lista) { Console.WriteLine("****************************************"); Console.WriteLine(lista.ToString()); }