コード例 #1
0
        public JsonResult Exporta(string excel, string sheet)
        {
            string res = "<strong>Operacion fallida</strong>\n";

            try
            {
                string ciclo = Ciclo;
                string path  = Server.MapPath("~/Archivos/" + excel);

                Conexion       c      = new Conexion(Conexion.datosConexion, path, ciclo);
                ListaVariables grupos = new ListaVariables(c.Grupos(ciclo, bExcel: false));

                c.Grupos_Carga(grupos, sheet, c.Materias_AsDictionary(), c.Profesores_AsDicctionary());

                res = "Exportacion completada </br><strong>Guardado en " + excel + "->" + sheet + "</strong>";
            }
            catch (Exception ex)
            {
                res += "\n" + ex.Message;
            }
            return(new JsonResult()
            {
                Data = res, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
コード例 #2
0
        public ActionResult _Grupos(string consulta)
        {
            Conexion       c = new Conexion(Conexion.datosConexion);
            ListaVariables list;
            ListaSalones   s = new ListaSalones(c, c.Salones());

            switch (consulta)
            {
            case "sinAsignar": list = new ListaVariables(c.IGrupos_sinAsignar(Session["ciclo"].ToString()));
                break;

            case "asignados": list = new ListaVariables(c.IGrupos_Asignados(Session["ciclo"].ToString()));
                break;

            case "sobrecupo": list = new ListaVariables(c.IGrupos_Sobrecupo(Session["ciclo"].ToString()));
                break;

            default: list = new ListaVariables(c.IGrupos_Light(Session["ciclo"].ToString()));
                break;
            }

            list.SetSalones(s);

            return(PartialView(list));
        }
コード例 #3
0
        public ActionResult _Salon(string cve_salon)
        {
            Conexion c = new Conexion(Conexion.datosConexion);
            List <InterfazWeb_02.Models.Salon> ls = new List <InterfazWeb_02.Models.Salon>();
            List <ListaVariables> aux;
            ListaVariables        grupos;

            switch (cve_salon)
            {
            case "empalmes":        //Empalmes
                grupos = new ListaVariables(c.Grupos(Session["ciclo"].ToString()));
                aux    = grupos.AgrupaGruposEmpalmados();
                foreach (ListaVariables g in aux)
                {
                    if (g.Count != 0)
                    {
                        ls.Add(new InterfazWeb_02.Models.Salon(c.Salon(g[0].Cve_espacio), g, g[0].Cve_espacio));
                    }
                }
                break;

            default:
                grupos = new ListaVariables(c.Grupos(Session["ciclo"].ToString(), cve_salon));
                ls.Add(new InterfazWeb_02.Models.Salon(c.Salon(cve_salon), grupos, cve_salon));
                break;
            }

            return(PartialView(ls));
        }
コード例 #4
0
        public ActionResult _Grupos(string ini, string fin, string dias)
        {
            Conexion       c    = new Conexion(Conexion.datosConexion);
            ListaVariables list = new ListaVariables(new ListaGrupos(
                                                         c.IGrupos_Light(Session["ciclo"].ToString(), Convert.ToInt32(ini), Convert.ToInt32(fin)),
                                                         c.Profesores(),
                                                         c.Materias()));
            ListaSalones s = new ListaSalones(c, c.Salones());

            list = list.EnDias(dias);
            list.SetSalones(s);

            return(PartialView(list));
        }
コード例 #5
0
        static void Main(string[] args)
        {
            inicializaConeccion();
            TimeSpan       stop;
            TimeSpan       start = new TimeSpan(DateTime.Now.Ticks);
            Algoritmo      alg;
            ChecaEmpalmes  emp;
            PreAsignacion  pre;
            ListaVariables grupos  = new ListaVariables(c.Grupos("2016-2017/II"));
            ListaSalones   salones = new ListaSalones(c, c.Salones());
            ListaVariables gruposActuales;

            for (int i = 7; i < 22; i++)
            {
                gruposActuales = new ListaVariables(grupos.EnHoras(i, i + 1));

                emp = new ChecaEmpalmes(grupos, salones);
                emp.ejecuta();
                grupos.Actualiza(emp.Grupos);

                pre = new PreAsignacion(grupos, salones);
                pre.preferencial();
                pre.semestres_anteriores();
                grupos.Actualiza(pre.Grupos);

                alg = new Algoritmo(grupos, salones, i, 5, 50);
                alg.AsignaSalones();
                grupos.Actualiza(alg.GruposAsignados);

                c.Grupos_Carga(gruposActuales);
            }
            stop = new TimeSpan(DateTime.Now.Ticks);
            Console.Write("***Pulsa una tecla para continuar****\n");
            Console.WriteLine("Tiempo del proceso: " + (stop.Subtract(start).TotalMilliseconds / 1000) + " segundos");

            while (Console.ReadKey().Key != ConsoleKey.Enter)
            {
                ;
            }
        }
コード例 #6
0
 public AsignacionOtrosSemestres(ListaVariables Grupos, ListaSalones Salones) : base(Grupos, Salones)
 {
 }
コード例 #7
0
        public JsonResult EjecutaOperaciones(string hora, int[] operaciones, string ciclo, string excel, string hoja)
        {
            //-empalmes -preasignacion -otrosSemestres -algoritmo
            string res      = "<strong>Asignacion Fallida</strong>\n";
            string detalles = "";

            try
            {
                Conexion       c       = new Conexion(Conexion.datosConexion, Server.MapPath("~/Archivos/" + excel), ciclo);
                ListaVariables grupos  = new ListaVariables(c.Grupos_EmpiezanA(ciclo, Convert.ToInt32(hora), false));
                ListaSalones   salones = new ListaSalones(c, c.Salones(), Convert.ToInt32(hora));
                salones.SetHorarios(c, Ciclo);

                int        numero_Operacion = 0;
                IOperacion operacion        = null;

                foreach (int op in operaciones)
                {
                    numero_Operacion++;

                    switch ((byte)op)  //Fabrica abstracta
                    {
                    case (byte)EOperaciones.algoritmoGenetico:
                        operacion = new AlgoritmoGenetico(grupos, salones, Convert.ToInt32(hora), 100, 1000);
                        break;

                    case (byte)EOperaciones.empalmes:
                        operacion = new RevisionEmpalmes(grupos, salones);
                        break;

                    case (byte)EOperaciones.otrosSemestres:
                        operacion = new AsignacionOtrosSemestres(grupos, salones);
                        break;

                    case (byte)EOperaciones.preasignacion:
                        operacion = new AsignacionPreferencial(grupos, salones);
                        break;
                    }

                    if (operacion != null)
                    {
                        operacion.Ejecuta();
                        if (operacion.Resultado.Count != 0)
                        {
                            grupos.Actualiza(operacion.Resultado);
                            detalles += Grupos2Table(operacion.Resultado.OrderBy(g => g.Cve_espacio).ToList(), operacion.NombreOperacion);
                        }
                        else
                        {
                            detalles += string.Format("{0} sin grupos modificados", operacion.NombreOperacion);
                        }

                        detalles += "<br>";
                    }
                }

                c.Grupos_Carga(grupos, hoja, c.Materias_AsDictionary(), c.Profesores_AsDicctionary());

                res = string.Format("Asignacion de {0} completada<br>{1}", hora, detalles);
            }
            catch (Exception ex)
            {
                res += "\n" + ex.Message;
            }

            return(new JsonResult()
            {
                Data = res, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
コード例 #8
0
 public AsignacionPreferencial(ListaVariables Grupos, ListaSalones Salones) : base(Grupos, Salones)
 {
 }