Exemple #1
0
        /// #NAME#: #DESCRIPTION#
        public void f_ce9567d0_f165_45e0_844a_a2881290bfeb()
        {
            //INI CODE PRCGUID: ce9567d0-f165-45e0-844a-a2881290bfeb

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            CProgram currProg = new CProgram(sys, App_globals, CVentanaProgramas.Namespace_programa_activo.ToString());

            ((JArray)currProg.Logic)[CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex].Remove();
            currProg.Save();


            //END CODE PRCGUID: ce9567d0-f165-45e0-844a-a2881290bfeb
        }
Exemple #2
0
        /// #NAME#: #DESCRIPTION#
        public void f_Guardar_proceso_activo()
        {
            //INI CODE PRCGUID: Guardar proceso activo

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas  = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            ARQODE_UI.GestorProcesos.CFormProcesoActivo CFormProcesoActivo = new ARQODE_UI.GestorProcesos.CFormProcesoActivo(vm);

            // cargar fichero de programa
            CProgram cprog = new CProgram(sys, App_globals, CVentanaProgramas.Namespace_programa_activo.ToString());

            if ((CVentanaProgramas.ListaProcesos.RowCount > 0) && (CVentanaProgramas.ListaProcesos.SelectedCells.Count > 0))
            {
                JToken JProc = (cprog.Logic as JArray)[int.Parse(CFormProcesoActivo.Fila_activa.ToString())];

                // Guardar descripción
                JProc["Description"] = CFormProcesoActivo.TBDescription.Text;

                // Guardar entradas
                JProc["Inputs"] = new JObject();
                for (int i = 0; i < CFormProcesoActivo.LInputs.RowCount; i++)
                {
                    if ((CFormProcesoActivo.LInputs[0, i].Value != null) && (CFormProcesoActivo.LInputs[1, i].Value != null) && (CFormProcesoActivo.LInputs[0, i].Value.ToString() != ""))
                    {
                        JProc["Inputs"][CFormProcesoActivo.LInputs[0, i].Value.ToString()] = CFormProcesoActivo.LInputs[1, i].Value.ToString();
                    }
                }

                // Guardar salidas
                JProc["Outputs"] = new JObject();
                for (int i = 0; i < CFormProcesoActivo.LOutputs.RowCount; i++)
                {
                    if ((CFormProcesoActivo.LOutputs[0, i].Value != null) && (CFormProcesoActivo.LOutputs[1, i].Value != null) && (CFormProcesoActivo.LOutputs[0, i].Value.ToString() != ""))
                    {
                        JProc["Outputs"][CFormProcesoActivo.LOutputs[0, i].Value.ToString()] = CFormProcesoActivo.LOutputs[1, i].Value.ToString();
                    }
                }
                JProc["Configuration"] = new JObject();
                // Guardar configuration
                for (int i = 0; i < CFormProcesoActivo.LConfig.RowCount; i++)
                {
                    if ((CFormProcesoActivo.LConfig[0, i].Value != null) && (CFormProcesoActivo.LConfig[1, i].Value != null) && (CFormProcesoActivo.LConfig[0, i].Value.ToString() != ""))
                    {
                        JProc["Configuration"][CFormProcesoActivo.LConfig[0, i].Value.ToString()] = CFormProcesoActivo.LConfig[1, i].Value.ToString();
                    }
                }

                cprog.Save();
            }

            //END CODE PRCGUID: Guardar proceso activo
        }
Exemple #3
0
        /// <summary>
        /// Launch task or single thread program
        /// </summary>
        /// <param name="eDesc"></param>
        public object LaunchProgram(CEventDesc eDesc, object program_vars)
        {
            bool queued = CProgram.CheckQueuedFlag(eDesc.Program);

            if ((logic == null) || (!queued))
            {
                // Init program
                if (Program != null)
                {
                    sprogram.Push(Program);
                }
                Program                 = new CProgram(sys, sys.Globals, eDesc.Program, program_vars);
                vm.Cancel_events        = true;
                Program.ExecuteProcess += Program_ExecuteProcess;

                // Run program if not queued or logic is null
                if (!Program.hasErrors())
                {
                    // Init logic process executor
                    if (logic != null)
                    {
                        slogic.Push(logic);
                    }
                    logic = new CLogic(sys, vm, eDesc);

                    // Run program sync or async
                    if (Program.Parallel_execution)
                    {
                        LaunchTask(eDesc);
                    }
                    else
                    {
                        RunProgram();
                    }

                    logic = (slogic.Count > 0) ? (CLogic)slogic.Pop() : null;
                }
                program_vars = Program.vars;
                Program.ProgramClose();
                vm.Cancel_events = false;
                Program          = (sprogram.Count > 0) ? (CProgram)sprogram.Pop() : null;
            }
            else if ((logic != null) && (queued))
            {
                // push program in queue
                sevent_desc.Push(eDesc);
            }
            return(program_vars);
        }
Exemple #4
0
        /// #NAME#: #DESCRIPTION#
        public void f_acbc65a0_6f4f_4d0b_aad9_e7c24e7241a1()
        {
            //INI CODE PRCGUID: acbc65a0-6f4f-4d0b-aad9-e7c24e7241a1
            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas  = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            ARQODE_UI.GestorProcesos.CFormProcesoActivo CFormProcesoActivo = new ARQODE_UI.GestorProcesos.CFormProcesoActivo(vm);
            CProgram curr_prog = new CProgram(sys, App_globals, CFormProcesoActivo.Namespace_programa_activo.ToString());
            String   var       = CFormProcesoActivo.LB_ProgramVars.SelectedItem.ToString();

            curr_prog.vars.Remove(var);
            curr_prog.Variables.RemoveAt(curr_prog.Variables.ToList().IndexOf(var));
            curr_prog.Save();
            CFormProcesoActivo.LB_ProgramVars.Items.Remove(var);


            //END CODE PRCGUID: acbc65a0-6f4f-4d0b-aad9-e7c24e7241a1
        }
Exemple #5
0
        /// #NAME#: #DESCRIPTION#
        public void f_57c58cbe_c7d5_4437_b06c_85232bda9804()
        {
            //INI CODE PRCGUID: 57c58cbe-c7d5-4437-b06c-85232bda9804


            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            if (CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex > 0)
            {
                CProgram currProg    = new CProgram(sys, App_globals, CVentanaProgramas.Namespace_programa_activo.ToString());
                JToken   proc_active = ((JArray)currProg.Logic)[CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex];
                ((JArray)currProg.Logic).Insert(CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex - 1, proc_active);
                proc_active.Remove();
                currProg.Save();
            }


            //END CODE PRCGUID: 57c58cbe-c7d5-4437-b06c-85232bda9804
        }
Exemple #6
0
        /// #NAME#: #DESCRIPTION#
        public void f_3343e203_c0a9_4a7c_9792_f3cb5411ff44()
        {
            //INI CODE PRCGUID: 3343e203-c0a9-4a7c-9792-f3cb5411ff44

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            if (CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex < CVentanaProgramas.ListaProcesos.RowCount - 1)
            {
                int      ri          = CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex;
                CProgram currProg    = new CProgram(sys, App_globals, CVentanaProgramas.Namespace_programa_activo.ToString());
                JToken   proc_active = ((JArray)currProg.Logic)[ri];
                ((JArray)currProg.Logic).Insert(ri + 2, proc_active);
                ((JArray)currProg.Logic)[ri].Remove();
                currProg.Save();
            }


            //END CODE PRCGUID: 3343e203-c0a9-4a7c-9792-f3cb5411ff44
        }
Exemple #7
0
        /// #NAME#: #DESCRIPTION#
        public void f_Editar_codigo()
        {
            //INI CODE PRCGUID: Editar código

            CProgram CurrentProg = null;

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);

            if ((CVentanaProgramas.ListaProcesos.Rows.Count > 0) && (CVentanaProgramas.ListaProcesos.SelectedCells.Count > 0) &&
                (CVentanaProgramas.ListaProcesos.SelectedCells[0].ColumnIndex == 0))
            {
                int    ri = CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex;
                int    ci = CVentanaProgramas.ListaProcesos.SelectedCells[0].ColumnIndex;
                String edit_code_value = (bool.Parse(CVentanaProgramas.ListaProcesos[ci, ri].Value.ToString())) ? "0" : "1";

                String p_guid = CVentanaProgramas.ListaProcesos[1, ri].Value.ToString();

                TreeNode N_ProgramaActivo = CVentanaProgramas.ArbolProgramas.SelectedNode;

                CurrentProg = new CProgram(sys, App_globals, N_ProgramaActivo.FullPath.Replace(dPROGRAM.FOLDER + "\\", "").Replace(".json", "").Replace("\\", "."));

                if (p_guid != "Call")
                {
                    if (!CurrentProg.SetProcess_Edit_Code(p_guid, edit_code_value))
                    {
                        MessageBox.Show("Seleccciona en el arbol de programas el programa correspondiente al proceso: " + p_guid);
                    }
                    else
                    {
                        CVentanaProgramas.ListaProcesos[ci, ri].Selected = false;
                        CVentanaProgramas.ListaProcesos[1, ri].Selected  = true;
                    }
                }
                else
                {
                    MessageBox.Show("No se puede editar el código de una función 'Call', sólo procesos.");
                    CVentanaProgramas.ListaProcesos.Rows[ri].Cells[ci].Value = false;
                }

                // cambiar la celda activa para que el evento cellcontentchanged no de problemas
                CVentanaProgramas.ListaProcesos[1, CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex].Selected = true;
            }
            //END CODE PRCGUID: Editar código
        }
Exemple #8
0
        /// #NAME#: #DESCRIPTION#
        public void f_b8c926b9_1f1f_4575_b0d6_abafca3997d9()
        {
            //INI CODE PRCGUID: b8c926b9-1f1f-4575-b0d6-abafca3997d9

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            ARQODE_UI.ARQODE_UI.CInputDialog            CInputDialog      = new ARQODE_UI.ARQODE_UI.CInputDialog(vm);
            CInputDialog.InputDialog.AcceptButton = CInputDialog.BAceptar;
            CInputDialog.InputDialog.CancelButton = CInputDialog.BCancelar;

            CInputDialog.InputDialog.Text = "Variables de programa";
            CInputDialog.Label1.Text      = "Nueva variable de programa";
            vm.Cancel_events = false;
            if (CInputDialog.InputDialog.ShowDialog() == DialogResult.OK)
            {
                String nueva_var = CInputDialog.textBox1.Text.Trim();
                if (nueva_var != "")
                {
                    ARQODE_UI.GestorProcesos.CFormProcesoActivo CFormProcesoActivo = new ARQODE_UI.GestorProcesos.CFormProcesoActivo(vm);
                    String   Programa_activo = CFormProcesoActivo.Namespace_programa_activo.ToString();
                    CProgram curr_prog       = new CProgram(sys, App_globals, Programa_activo);

                    if (!curr_prog.Variables.Contains(nueva_var))
                    {
                        curr_prog.Variables.Add(nueva_var);
                        curr_prog.Save();
                        CFormProcesoActivo.LB_ProgramVars.Items.Add(nueva_var);
                    }
                    else
                    {
                        MessageBox.Show("La variable ya existe en el programa");
                    }
                }
            }



            //END CODE PRCGUID: b8c926b9-1f1f-4575-b0d6-abafca3997d9
        }
Exemple #9
0
        /// #NAME#: #DESCRIPTION#
        public void f_Cargar_subprogramas()
        {
            //INI CODE PRCGUID: Cargar subprogramas

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            TreeNode ActiveNode = CVentanaProgramas.ArbolProgramas.SelectedNode;
            int      row_index  = 0;
            int      col_index  = 0;

            if ((ActiveNode != null) && (ActiveNode.Text.EndsWith(".json")))
            {
                CProgram CurrentProg = new CProgram(sys, App_globals, ActiveNode.FullPath.Replace(dPROGRAM.FOLDER + "\\", "").Replace(".json", "").Replace("\\", "."));
                CVentanaProgramas.Namespace_programa_activo = CurrentProg.Program_namespace;

                #region Guardar namespace actual en histórico
                DataTable dt = null;
                if (CVentanaProgramas.Historico_de_programas == null)
                {
                    dt = new DataTable();
                    dt.Columns.Add("Path");
                    dt.Columns.Add("Program name");
                    CVentanaProgramas.Historico_de_programas = dt;
                }
                else
                {
                    dt = (DataTable)CVentanaProgramas.Historico_de_programas;
                }
                if (!((dt.Rows.Count > 0) && (dt.Rows[0][0].ToString() == CurrentProg.Program_namespace)))
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = dPROGRAM.FOLDER + "." + CurrentProg.Program_namespace;
                    dr[1] = CurrentProg.Program_namespace;
                    dt.Rows.InsertAt(dr, 0);
                }

                Outputs("Histórico de programas", dt);
                #endregion

                if (CurrentProg.Logic != null)
                {
                    if ((CVentanaProgramas.ListaProcesos.RowCount > 0) && (CVentanaProgramas.ListaProcesos.SelectedCells.Count > 0))
                    {
                        row_index = CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex;
                        col_index = CVentanaProgramas.ListaProcesos.SelectedCells[0].ColumnIndex;
                    }

                    JArray JProcess_array = new JArray();
                    foreach (JObject prc_node in CurrentProg.Logic)
                    {
                        if (prc_node.Count > 0)
                        {
                            TProcess CurrentProc = new TProcess(sys, App_globals, prc_node);

                            JObject JRow = new JObject();
                            JRow.Add("Editor", CurrentProc.Edit_code == "1");
                            JRow.Add("Guid", CurrentProc.Guid.ToString());
                            String Name = (CurrentProc.Name != null) ? CurrentProc.Name.ToString() : CurrentProc.Guid.ToString();
                            JRow.Add("Name", Name);

                            if (Name.EndsWith("Call"))
                            {
                                String call_at_end = "";
                                if (CurrentProc.Configuration["program"].ToString().StartsWith("&"))
                                {
                                    call_at_end = "(Execute at end). ";
                                }

                                JRow.Add("Description", call_at_end + CurrentProc.Configuration["program"].ToString());
                            }
                            else
                            {
                                JRow.Add("Description", (CurrentProc.Description != null) ? CurrentProc.Description.ToString() : "");
                            }

                            JProcess_array.Add(JRow);
                        }
                    }
                    CVentanaProgramas.Procesos_programa_activo = CurrentProg.Logic;

                    DataGridViewCheckBoxColumn c1 = new DataGridViewCheckBoxColumn()
                    {
                        ValueType = typeof(bool),
                        Name      = "Editor"
                    };

                    DataGridViewTextBoxColumn c2 = new DataGridViewTextBoxColumn();
                    c2.ValueType = typeof(string);
                    c2.Name      = "Guid";
                    DataGridViewTextBoxColumn c3 = new DataGridViewTextBoxColumn();
                    c3.ValueType = typeof(string);
                    c3.Name      = "Name";
                    DataGridViewTextBoxColumn c4 = new DataGridViewTextBoxColumn();
                    c4.ValueType = typeof(string);
                    c4.Name      = "Description";
                    CVentanaProgramas.ListaProcesos.Columns.Clear();
                    CVentanaProgramas.ListaProcesos.Columns.Add(c1);
                    CVentanaProgramas.ListaProcesos.Columns.Add(c2);
                    CVentanaProgramas.ListaProcesos.Columns.Add(c3);
                    CVentanaProgramas.ListaProcesos.Columns.Add(c4);
                    CVentanaProgramas.ListaProcesos.DataSource = null;

                    CVentanaProgramas.ListaProcesos.Rows.Clear();
                    foreach (JToken Jpro in JProcess_array)
                    {
                        CVentanaProgramas.ListaProcesos.Rows.Add(Jpro["Editor"], Jpro["Guid"], Jpro["Name"], Jpro["Description"]);
                    }
                    CVentanaProgramas.ListaProcesos.AllowUserToAddRows  = false;
                    CVentanaProgramas.ListaProcesos.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

                    if (CVentanaProgramas.ListaProcesos.RowCount > 0)
                    {
                        if ((CVentanaProgramas.ListaProcesos.Rows.Count > row_index) && (CVentanaProgramas.ListaProcesos.Columns.Count > col_index))
                        {
                            CVentanaProgramas.ListaProcesos[col_index, row_index].Selected = true;
                            CVentanaProgramas.ListaProcesos[0, 0].Selected = false;
                        }
                    }
                    CVentanaProgramas.ListaProcesos.Columns[0].Width = 40;
                    CVentanaProgramas.ListaProcesos.Columns[1].Width = 200;
                }
                else
                {
                    MessageBox.Show("El programa seleccionado contiene errores, revisar formato del json.");
                }
            }
            else
            {
                CVentanaProgramas.ListaProcesos.Rows.Clear();
            }
            //END CODE PRCGUID: Cargar subprogramas
        }
Exemple #10
0
        /// #NAME#: #DESCRIPTION#
        public void f_Cargar_proceso_activo()
        {
            //INI CODE PRCGUID: Cargar proceso activo

            ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas  = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
            ARQODE_UI.GestorProcesos.CFormProcesoActivo CFormProcesoActivo = new ARQODE_UI.GestorProcesos.CFormProcesoActivo(vm);
            if ((CVentanaProgramas.Namespace_programa_activo != null) && (CVentanaProgramas.ListaProcesos.Rows.Count > 0))
            {
                ARQODE_UI.GestorProcesos.CVentanaProcesos CVentanaProcesos = new ARQODE_UI.GestorProcesos.CVentanaProcesos(vm);
                if (CVentanaProcesos.PProcessPanel.Controls.Count == 0)
                {
                    CVentanaProcesos.PProcessPanel.Controls.Add(CFormProcesoActivo.FormProcesoActivo);
                }
                CFormProcesoActivo.FormProcesoActivo.Dock = DockStyle.Fill;
                // Variables de vistas
                CFormProcesoActivo.TV_ViewsVars.Nodes.Clear();
                TreeNode        tn_views  = (TreeNode)CVentanaProgramas.Cargar_arbol_recursivo.Crear_arbol_desde_carpeta(App_globals.AppDataSection(dPATH.VIEWS).FullName, "base_control.json");
                List <TreeNode> NodosHoja = (List <TreeNode>)CVentanaProgramas.Cargar_arbol_recursivo.Crear_lista_de_nodos_hoja_del_arbol(tn_views);

                foreach (TreeNode node in tn_views.Nodes)
                {
                    CFormProcesoActivo.TV_ViewsVars.Nodes.Add(node);
                }

                foreach (TreeNode nodo in NodosHoja)
                {
                    JSonFile JView = new JSonFile(Path.Combine(
                                                      App_globals.AppDataSection(dPATH.VIEWS).FullName,
                                                      nodo.FullPath));
                    if (JView.jActiveObj["Variables"] != null)
                    {
                        foreach (JValue var in JView.jActiveObj["Variables"] as JArray)
                        {
                            nodo.Nodes.Add(var.Value.ToString());
                        }
                    }
                }

                // Variables de programa
                CFormProcesoActivo.LB_ProgramVars.Items.Clear();

                CProgram Curr_prog = new CProgram(sys, App_globals, CVentanaProgramas.Namespace_programa_activo.ToString());
                foreach (String var in Curr_prog.vars.Keys)
                {
                    CFormProcesoActivo.LB_ProgramVars.Items.Add(var);
                }

                // Variables globals
                CFormProcesoActivo.TV_GlobalsVars.Nodes.Clear();
                foreach (JToken JGlob in App_globals.Globals)
                {
                    TreeNode tn = new TreeNode(((JProperty)JGlob).Name);

                    if (((JProperty)JGlob).Value is JObject)
                    {
                        JObject JChildGlobs = (JObject)((JProperty)JGlob).Value;

                        foreach (JProperty JChildGlob in JChildGlobs.Properties())
                        {
                            TreeNode tn1 = new TreeNode(JChildGlob.Name);
                            tn.Nodes.Add(tn1);
                        }
                    }

                    CFormProcesoActivo.TV_GlobalsVars.Nodes.Add(tn);
                }

                // Datos del proceso
                JToken JProgram_logic = (JToken)CVentanaProgramas.Procesos_programa_activo;
                if (JProgram_logic != null)
                {
                    if ((CVentanaProgramas.ListaProcesos.SelectedCells.Count > 0) ||
                        (CVentanaProgramas.ListaProcesos.Rows.Count > 0))
                    {
                        int rowIndex = (CVentanaProgramas.ListaProcesos.SelectedCells.Count > 0) ?
                                       CVentanaProgramas.ListaProcesos.SelectedCells[0].RowIndex :
                                       0;

                        String PGuid = CVentanaProgramas.ListaProcesos[1, rowIndex].Value.ToString();
                        JToken JProc = (JProgram_logic as JArray)[rowIndex];
                        // Eliminar el proceso si está vacío
                        if (JProc.Count() == 0)
                        {
                            JProc.Remove();
                            JProc = (JProgram_logic as JArray)[rowIndex];
                        }

                        // Guardar proceso activo
                        Outputs("Proceso de programa activo", JProc);

                        CFormProcesoActivo.Fila_activa = rowIndex;

                        CFormProcesoActivo.Active_process            = JProc;
                        CFormProcesoActivo.Namespace_programa_activo = CVentanaProgramas.Namespace_programa_activo;

                        CFormProcesoActivo.LName.Text         = (JProc["Name"] != null) ? JProc["Name"].ToString() : JProc["Guid"].ToString();
                        CFormProcesoActivo.TBDescription.Text = (JProc["Description"] != null) ? JProc["Description"].ToString() : "";

                        // inputs
                        System.Data.DataTable dti = new System.Data.DataTable();

                        dti.Columns.Add("Input");
                        dti.Columns.Add("Value");
                        foreach (JProperty JInput in JProc["Inputs"])
                        {
                            dti.Rows.Add(new String[] { JInput.Name, JInput.Value.ToString() });
                        }
                        CFormProcesoActivo.LInputs.DataSource = dti;

                        // Outputs
                        System.Data.DataTable dto = new System.Data.DataTable();

                        dto.Columns.Add("Output");
                        dto.Columns.Add("Value");
                        foreach (JProperty JOutputs in JProc["Outputs"])
                        {
                            dto.Rows.Add(new String[] { JOutputs.Name, JOutputs.Value.ToString() });
                        }
                        CFormProcesoActivo.LOutputs.DataSource = dto;

                        // Configuration
                        if (JProc["Configuration"] != null)
                        {
                            System.Data.DataTable dtc = new System.Data.DataTable();

                            dtc.Columns.Add("Configuration");
                            dtc.Columns.Add("Value");
                            foreach (JProperty JConfig in JProc["Configuration"])
                            {
                                dtc.Rows.Add(new String[] { JConfig.Name, JConfig.Value.ToString() });
                            }
                            CFormProcesoActivo.LConfig.DataSource = dtc;
                        }
                    }
                    else
                    {
                        CFormProcesoActivo.Active_process      = null;
                        CFormProcesoActivo.LName.Text          = "";
                        CFormProcesoActivo.TBDescription.Text  = "";
                        CFormProcesoActivo.LInputs.DataSource  = null;
                        CFormProcesoActivo.LOutputs.DataSource = null;
                        CFormProcesoActivo.LConfig.DataSource  = null;
                        Outputs("Proceso de programa activo", null);
                    }
                }

                CVentanaProcesos.tabProcesos.SelectedIndex = 1;
            }
            else
            {
                CFormProcesoActivo.Active_process      = null;
                CFormProcesoActivo.LName.Text          = "";
                CFormProcesoActivo.TBDescription.Text  = "";
                CFormProcesoActivo.LInputs.DataSource  = null;
                CFormProcesoActivo.LOutputs.DataSource = null;
                CFormProcesoActivo.LConfig.DataSource  = null;
                Outputs("Proceso de programa activo", null);
            }
            //END CODE PRCGUID: Cargar proceso activo
        }
Exemple #11
0
        /// #NAME#: #DESCRIPTION#
        public void f_17250dd1_6cd2_4b1b_a7cd_58ec52297bb8()
        {
            //INI CODE PRCGUID: 17250dd1-6cd2-4b1b-a7cd-58ec52297bb8

            String fichero_de_salida = Input_str("Fichero de salida");

            if (fichero_de_salida != "")
            {
                // current program
                ARQODE_UI.GestorProgramas.CVentanaProgramas CVentanaProgramas = new ARQODE_UI.GestorProgramas.CVentanaProgramas(vm);
                String ns_programa = CVentanaProgramas.Namespace_programa_activo.ToString();

                // program stack for recursive exploration
                Stack <KeyValuePair <int, CProgram> > s_prog = new Stack <KeyValuePair <int, CProgram> >();

                // Progs and procs dictionarys
                Dictionary <String, JToken> exp_programs  = new Dictionary <string, JToken>();
                Dictionary <String, JToken> exp_processes = new Dictionary <String, JToken>();

                CProgram cprog = new CProgram(sys, App_globals, ns_programa);
                while ((ns_programa != "") || (s_prog.Count > 0))
                {
                    int i = 0;

                    // Restore program from stack
                    if (cprog == null)
                    {
                        KeyValuePair <int, CProgram> k_prog = s_prog.Pop();
                        i     = k_prog.Key;
                        cprog = k_prog.Value;
                    }
                    int  n_prcs     = ((JArray)cprog.Logic).Count;
                    bool force_exit = false;

                    // Save program and inner processes
                    while ((!force_exit) && (i < n_prcs))
                    {
                        TProcess proc = new TProcess(sys, App_globals, (JObject)((JArray)cprog.Logic).ElementAt(i));
                        if (!exp_programs.ContainsKey(cprog.Program_namespace))
                        {
                            // add program only once
                            exp_programs.Add(cprog.Program_namespace, cprog.get_json.DeepClone());
                        }

                        i++;
                        if (proc.Guid == "Call")
                        {
                            // Add current program to stack and atach the new one for explore recursively
                            s_prog.Push(new KeyValuePair <int, CProgram>(i, cprog));
                            cprog       = new CProgram(sys, App_globals, proc.Configuration["program"].ToString());
                            ns_programa = cprog.Program_namespace;
                            force_exit  = true;
                        }
                        else if (!exp_processes.ContainsKey(proc.Guid))
                        {
                            // add process only once
                            exp_processes.Add(proc.Guid, proc.get_json.DeepClone());
                        }
                    }
                    if ((i == n_prcs) && (!force_exit))
                    {
                        // set null program only if previous bucle ends
                        cprog       = null;
                        ns_programa = "";
                    }
                }

                #region Create zip

                Ionic.Zip.ZipFile exp_file = null;
                if (File.Exists(fichero_de_salida))
                {
                    exp_file = Ionic.Zip.ZipFile.Read(fichero_de_salida);
                }
                else
                {
                    exp_file = new Ionic.Zip.ZipFile(fichero_de_salida);
                }

                #region add programs & ns conversions to zip file

                String entry_path     = "";
                String base_file_path = "";
                JArray jConversion    = new JArray();

                if (exp_file.ContainsEntry(dEXPORTCODE.STR_IMPORT_CONVS))
                {
                    Ionic.Zip.ZipEntry ze = exp_file.Entries.Where(entry => entry.FileName == dEXPORTCODE.STR_IMPORT_CONVS).FirstOrDefault();

                    MemoryStream ms = new MemoryStream();
                    ze.Extract(ms);
                    byte[] entry_data   = ms.ToArray();
                    String file_content = System.Text.Encoding.Default.GetString(entry_data);
                    ms.Close();
                    jConversion = JArray.Parse(file_content);
                }
                foreach (String sprog in exp_programs.Keys)
                {
                    base_file_path = escape_sc(sprog);

                    // Conversions
                    String  new_ns = dPROGRAM.FOLDER + "\\Imports\\" + base_file_path;
                    JObject jconv  = new JObject(new JProperty(sprog, new_ns));
                    jConversion.Add(jconv);

                    // Add program
                    entry_path = dPROGRAM.FOLDER + "\\Imports\\" + base_file_path + ".json";
                    if (!exp_file.ContainsEntry(entry_path))
                    {
                        exp_file.AddEntry(entry_path, System.Text.UTF8Encoding.UTF8.GetBytes(exp_programs[sprog].ToString()));
                    }
                }
                if (exp_file.ContainsEntry(dEXPORTCODE.STR_IMPORT_CONVS))
                {
                    exp_file.UpdateEntry(dEXPORTCODE.STR_IMPORT_CONVS, jConversion.ToString());
                }
                else
                {
                    exp_file.AddEntry(dEXPORTCODE.STR_IMPORT_CONVS, jConversion.ToString());
                }
                #endregion

                #region Create processes file

                JSonFile jfTemplate = new JSonFile(Globals.AppDataSection(dPATH.PROCESSES), dGLOBALS.PROCESS_TEMPLATE.Replace(".json", ""));
                foreach (JToken jproc in exp_processes.Values)
                {
                    ((JArray)jfTemplate.get(dPROCESS.PROCESSES)).Add(jproc);
                }
                #endregion

                #region add processes file

                base_file_path = escape_sc(CVentanaProgramas.Namespace_programa_activo.ToString());
                entry_path     = dPROCESS.FOLDER + "\\Imports\\" + base_file_path + ".json";
                if (!exp_file.ContainsEntry(entry_path))
                {
                    exp_file.AddEntry(entry_path, System.Text.UTF8Encoding.UTF8.GetBytes(jfTemplate.jActiveObj.ToString()));
                }
                #endregion

                exp_file.Save();

                #endregion

                MessageBox.Show(String.Format("Program exported {0}", CVentanaProgramas.Namespace_programa_activo.ToString()));
            }

            //END CODE PRCGUID: 17250dd1-6cd2-4b1b-a7cd-58ec52297bb8
        }