public CStructModifications(CSystem system, CGlobals app_globals) { sys = system; Globals = app_globals; cVistas = Globals.AppDataSection(dPATH.VIEWS); cProgramas = Globals.AppDataSection(dPATH.PROGRAM); cProcesos = Globals.AppDataSection(dPATH.PROCESSES); }
/// <summary> /// Check integrity in program processes /// </summary> /// <param name="fi"></param> /// <param name="FindedPrograms"></param> /// <returns></returns> private bool check_integrity_in_process(FileInfo fi, ref ArrayList FindedPrograms) { try { JSonFile jProgram = new JSonFile(fi.FullName); String program_path = fi.FullName.Replace(Globals.AppDataSection(dPATH.PROGRAM).FullName + "\\", "").Replace("\\", ".").Replace(".json", ""); TErrors er = new TErrors(Globals, program_path); foreach (JObject prc_node in jProgram.jActiveObj["Logic"] as JArray) { if (prc_node.Properties().Count() > 0) { TProcess prc = new TProcess(sys, Globals, prc_node); if (!CDataIntegrity.CheckAllVariables(prc, ref er)) { FindedPrograms.Add(String.Format("Program: {0}: \r\n -> Process: {1} \r\n -> {2}", program_path, prc.Name, er.getErrors().ToString())); } } } } catch (Exception exc) { FindedPrograms.Add(exc.Message); } return(false); }
/// <summary> /// Get controls in view from file /// </summary> /// <param name="Globals"></param> /// <param name="view"></param> /// <param name="control_guid"></param> public TBaseControls(CGlobals Globals, String view) { jErrors = new JArray(); prcInfo = new JSonFile(Globals.AppDataSection(dCONTROLS.PATH), view, true); if (!prcInfo.hasErrors()) { jErrors = prcInfo.jErrors; } }
public CProgram(CSystem csystem, CGlobals Globals, String program, object program_vars = null) { sys = csystem; // Remove program queued flag program_name = (program.StartsWith("&")) ? program.Substring(1) : program; // Read program progInfo = new JSonFile(Globals.AppDataSection(dPATH.PROGRAM), program_name, true); if (!progInfo.hasErrors()) { // Init csystem.ProgramErrors and debug for program execution csystem.ProgramErrors = new TErrors(Globals, program); csystem.ProgramDebug = new TDebug(Globals, program); debug = csystem.ProgramDebug; csystem.ProgramErrors.Name = Name; csystem.ProgramErrors.Description = Description; debug.Name = Name; debug.Description = Description; // Init vars if (program_vars == null) { vars = new Dictionary <string, object>(); } else { vars = (Dictionary <string, object>)program_vars; } foreach (JValue var in Variables) { if (!vars.ContainsKey(var.Value.ToString())) { vars.Add(var.Value.ToString(), null); } } } else { csystem.ProgramErrors = new TErrors(Globals, program); csystem.ProgramErrors.invalidJSON = progInfo.jErrors; } }
private bool loadBaseProcess(CGlobals Globals) { pBasePrc = new JSonFile(Globals.AppDataSection(dPATH.PROCESSES), Namespace, false); if (pBasePrc.file_exists) { if (!pBasePrc.hasErrors()) { pBasePrc.setActiveNode(String.Format("$.{0}[?(@.{1} == '{2}')]", dPROCESS.PROCESSES, dPROCESS.GUID.ToString(), Guid)); } else { sys.ProgramErrors.invalidJSON = String.Format("Error loading json file {0}.{1}. Details: {2}", dPATH.PROCESSES, Namespace, pBasePrc.jErrors.ToString()); } return(true); } else { return(false); } }
/// <summary> /// Map objects in assembly file /// </summary> /// <param name="assembly_file"></param> public String MapObjectFromFile(String assembly_file) { String dll_lines = ""; String relative_path = assembly_file.Replace(app_globals.AppDataSection(dPATH.DLL).FullName, "").Replace("\\", "."); // Load assembly Assembly _dll = Assembly.LoadFrom(assembly_file); // generate maps foreach (Type dll_type in _dll.GetTypes()) { #region namespace and class String ns_lines = String.Format("namespace {0}", dll_type.FullName) + endline + "{" + endline + String.Format(sep(1) + "public class {0}", dll_type.Name) + endline + sep(1) + "{" + endline + "vars_lines" + endline + "constructor" + endline + "property_lines" + endline + "method_lines" + endline + sep(1) + "}" + endline + "}" + endline; #endregion #region object variables String var_lines = sep(2) + "Type tobj;" + endline + sep(2) + "Object obj;" + endline + sep(2) + String.Format("String dll_path = \"{0}\";", relative_path) + endline; #endregion #region Constructor String constr_lines = sep(2) + String.Format("public {0}(CGlobals App_globals)", dll_type.Name) + endline + sep(3) + "{" + endline + sep(4) + "Assembly _dll = Assembly.LoadFrom(App_globals.getAssembly(dll_path));" + endline + sep(4) + String.Format("tobj = _dll.GetType(\"{0}\");", dll_type.Name) + endline + sep(4) + "obj = (Object)Activator.CreateInstance(tobj); " + endline + sep(3) + "}" + endline; #endregion #region MEthods String methods_lines = ""; foreach (MethodInfo mi in dll_type.GetMethods()) { //mi.ReturnType.FullName String method_params = ""; String mparameters = ""; String sepc = ""; foreach (ParameterInfo pi in mi.GetParameters()) { method_params += sepc + pi.ParameterType.FullName + " " + pi.Name; mparameters = sepc + pi.Name; sepc = ", "; } methods_lines += sep(2) + String.Format("public {0} {1}({2})", mi.ReturnType.FullName, mi.Name, method_params) + endline + sep(2) + "{" + endline + sep(3) + "object[] method_params = new object[] { " + mparameters + "};" + endline + sep(3) + String.Format("return tobj.GetMethod(\"{0}\").Invoke(obj, method_params);", mi.Name) + endline + sep(2) + "}" + endline; } #endregion #region properties String property_lines = ""; foreach (PropertyInfo pi in dll_type.GetProperties()) { property_lines += sep(2) + String.Format("public {0} {1} ", pi.PropertyType.FullName, pi.Name) + endline + sep(2) + "{ " + endline + sep(3) + "get { " + endline + sep(4) + String.Format("return tobj.GetProperty(\"{0}\").GetValue(obj);", pi.Name) + endline + sep(3) + "} " + endline + sep(3) + "set { " + endline + sep(4) + String.Format("tobj.GetProperty(\"{0}\").SetValue(obj, value); ", pi.Name) + endline + sep(3) + "} " + endline + sep(2) + "}" + endline; } #endregion #region add ns dll_lines += ns_lines.Replace("vars_lines", var_lines) .Replace("constructor", constr_lines) .Replace("property_lines", property_lines) .Replace("method_lines", methods_lines); #endregion } return(dll_lines); }
public bool forceExitProgram = false; // Force program exit #endregion #region Constructor public TErrors(CGlobals Globals, String Program) { errorInfo = new JSonFile(Globals.AppDataSection(dPATH.ERRORS), Program); errorInfo.set(dERROR.STATUS, generalStatus.READY.ToString()); }
public TDebug(CGlobals globals, String Program) { Globals = globals; debugInfo = new JSonFile(Globals.AppDataSection(dPATH.DEBUG), Program); debugInfo.set(dDEBUG.PROCESSES, new JArray()); }
public TTracer(CGlobals globals) { Globals = globals; tracerInfo = new JSonFile(Globals.AppDataSection(dPATH.TRACER), Globals.ActiveAppName, false); initializar_tracer(); }