/// <summary> /// <para>Evento activo cuando se presiona el tabulador.</para> /// </summary> internal void OnTabPresionado() // Evento activo cuando se presiona el tabulador { // Nodo autocompletado if (AutoCompletar.Count != 0) { OnEnterPresionado(); return; } AutoCompletarIndex = 0; AutoCompletar.Clear(); AutoCompletar.AddRange(mdevMetodos.GetComandos(InputText)); }
/// <summary> /// <para>Evento activo cuando se presiona la tecla Enter.</para> /// </summary> internal void OnEnterPresionado() // Evento activo cuando se presiona la tecla Enter { // Comprobar el autocompletado sino comprobar la ejecucion del comando if (AutoCompletar.Count > 0) { InputText = AutoCompletar[AutoCompletarIndex]; AutoCompletar.Clear(); } else { PreEjecutar(); } }
/// <summary> /// <para>Ejecuta un comando.</para> /// </summary> /// <param name="input"></param> /// <returns></returns> private string EjecutarComando(string input) // Ejecuta un comando { // Preparar la ejecucion AutoCompletar.Clear(); bool registrado = false; string resultado = null; string parentesisValido = Regex.Match(input, @"\(([^)]*)\)").Groups[1].Value; List <string> args = new List <string>(); string comando; // Reemplazar con el limitador if (!string.IsNullOrEmpty(parentesisValido)) { args = parentesisValido.Split(new char[] { ',' }).ToList(); comando = input.Replace(parentesisValido, "").Replace("(", "").Replace(")", "").Replace(";", ""); } else { comando = input.Replace("(", "").Replace(")", "").Replace(";", ""); } foreach (var met in mdevMetodos.Metodos) { // Devuelve los 3 atributos. foreach (object atri in met.GetCustomAttributes(true)) { if (atri is MDevAttribute) { MDevAttribute com = (MDevAttribute)atri; if (com.nombreComando == comando) { if (registrado) { Debug.LogError("Multiples comandos se definen con: " + comando); } Type type = (met.DeclaringType); ParameterInfo[] parametros = met.GetParameters(); List <object> argList = new List <object>(); // Argumentos de lanzamiento si hay alguno if (args.Count != 0) { if (parametros.Length != args.Count) { resultado = string.Format("El comando {0} necesita {1} parametros, solo paso {2}", comando, parametros.Length, args.Count); Debug.Log(resultado); return(resultado); } else { // Lanzar argumentos de string para ingresar tipos de objetos for (int i = 0; i < parametros.Length; i++) { try { var a = Convert.ChangeType(args[i], parametros[i].ParameterType); argList.Add(a); } catch { resultado = string.Format("No se pudo convertir {0} al tipo {1}", args[i], parametros[i].ParameterType); Debug.LogError(resultado); return(resultado); } } } } if (type.IsSubclassOf(typeof(UnityEngine.Object))) { var instance_classes = GameObject.FindObjectsOfType(type); if (instance_classes != null) { foreach (var instance_class in instance_classes) { resultado = (string)met.Invoke(instance_class, argList.ToArray()); } } } else { var instance_class = Activator.CreateInstance(type); resultado = (string)met.Invoke(instance_class, argList.ToArray()); } registrado = true; break; } } } } // Devolver resultado if (!string.IsNullOrEmpty(resultado)) { return(resultado); } // Volver si esta registrado if (registrado) { return(null); } // Volver un error return("Comando no encontrado! - Escribe \"help\" para la lista de comandos disponibles!"); }
public ActionResult Perfil(int rut) { GestionEmpleadosDBEntities db = new GestionEmpleadosDBEntities(); PerfilViewModel model = new PerfilViewModel(); var empleado = (from emp in db.Empleado join af in db.Afp on emp.afp_id equals af.Id where emp.rut == rut select emp).FirstOrDefault(); //-------------------------------------------// var afp = (from emp in db.Empleado join af in db.Afp on emp.afp_id equals af.Id where emp.rut == rut select af).FirstOrDefault(); //-------------------------------------------// var haberes = (from hab in db.Haberes join emp in db.Empleado on hab.rut_empleado equals emp.rut where emp.rut == rut select hab).FirstOrDefault(); //-------------------------------------------// var descuento = (from des in db.Descuento join emp in db.Empleado on des.rut_empleado equals emp.rut where emp.rut == rut select des).FirstOrDefault(); //-------------------------------------------// var otros = (from emp in db.Empleado join otr in db.Otros_Descuentos on emp.desc_id equals otr.id where emp.rut == rut select otr).FirstOrDefault(); //-------------------------------------------// var cargaFam = (from emp in db.Empleado join fam in db.Asignacion_familiar on emp.asignacion_id equals fam.Id where emp.rut == rut select fam).FirstOrDefault(); //-------------------------------------------// var salud = (from emp in db.Empleado join sal in db.Salud on emp.salud_id equals sal.Id where emp.rut == rut select sal).FirstOrDefault(); //-------------------------------------------// var beneficio = (from emp in db.Empleado join ben in db.Beneficio_Antiguedad on emp.antiguedad_id equals ben.Id where emp.rut == rut select ben).FirstOrDefault(); if (ModelState.IsValid && empleado != null && afp != null && haberes != null && descuento != null && otros != null) { model.AfpLista = db.Afp.ToList <Afp>(); model.PrevisionLista = db.Salud.ToList <Salud>(); //-------------------------------------------// model.Rut = empleado.rut; model.sueldo_basevm = Convert.ToString(empleado.sueldo_base); //-------------------------------------------// if (empleado.asignacion_id < 4) { model.TieneCargavm = "SI"; } else if (empleado.asignacion_id == 5) { model.TieneCargavm = "No Registrado"; } else if (empleado.asignacion_id == 4) { model.TieneCargavm = "NO"; } else { model.TieneCargavm = "SI"; } //-------------------------------------------// //-------------------------------------------// model.monto_familiarvm = haberes.monto_familiar; model.calculoHoraExtra = haberes.hora_extra; model.comisionvm = haberes.comision; model.bonovm = (beneficio.porcentaje_antiguedad * empleado.sueldo_base) / 100; model.colacionvm = haberes.colacion; model.movilizacionvm = haberes.movilizacion; //-------------------------------------------// model.NombreAfp = afp.nombre; model.descuento_afpvm = descuento.descuento_afp; model.tiposaludvm = salud.tipo_salud; model.descuento_saludvm = descuento.descuento_salud; model.descuento_cesantiavm = descuento.seguro_cesantia; model.descuento_segurovidavm = descuento.seguro_vida; //-------------------------------------------// model.total_haberesvm = haberes.total_haberes; model.total_descuentosvm = descuento.total_descuentos; model.sueldo_liquidovm = empleado.sueldo_liquido; //-------------------------------------------// return(View(model)); } else { Programacion.AutoCompletar Metodo = new AutoCompletar(); Metodo.IA(model, rut); return(RedirectToAction("Perfil", "Edit", new { rut })); } }