private void LoadDebugTab(TabPage debugTab)
        {
            if (InvokeRequired)
            {
                var d = new LoadDebugTabDelegate(LoadDebugTab);
                Invoke(d, new object[] { debugTab });
            }
            else
            {
                DataTable variableValues = new DataTable();
                variableValues.Columns.Add("Name");
                variableValues.Columns.Add("Type");
                variableValues.Columns.Add("Value");
                variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss");

                DataGridView variablesGridViewHelper = new DataGridView();
                variablesGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                variablesGridViewHelper.Dock = DockStyle.Fill;
                variablesGridViewHelper.ColumnHeadersHeight   = 30;
                variablesGridViewHelper.AutoSizeColumnsMode   = DataGridViewAutoSizeColumnsMode.Fill;
                variablesGridViewHelper.AllowUserToAddRows    = false;
                variablesGridViewHelper.AllowUserToDeleteRows = false;
                variablesGridViewHelper.ReadOnly = true;

                if (debugTab.Controls.Count != 0)
                {
                    debugTab.Controls.RemoveAt(0);
                }
                debugTab.Controls.Add(variablesGridViewHelper);

                List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.VariableList;
                foreach (var variable in engineVariables)
                {
                    DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'");
                    if (foundVariables.Length == 0)
                    {
                        string type = "null";
                        if (variable.VariableValue != null)
                        {
                            type = variable.VariableValue.GetType().FullName;
                        }

                        variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue));
                    }
                }
                variablesGridViewHelper.DataSource = variableValues;
                uiPaneTabs.SelectedTab             = debugTab;
            }
        }
        private void LoadDebugTab(TabPage debugTab)
        {
            if (InvokeRequired)
            {
                var d = new LoadDebugTabDelegate(LoadDebugTab);
                Invoke(d, new object[] { debugTab });
            }
            else
            {
                DataTable variableValues = new DataTable();
                variableValues.Columns.Add("Name");
                variableValues.Columns.Add("Type");
                variableValues.Columns.Add("Value");
                variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss");

                DataGridView variablesGridViewHelper = new DataGridView();
                variablesGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                variablesGridViewHelper.Dock = DockStyle.Fill;
                variablesGridViewHelper.ColumnHeadersHeight   = 30;
                variablesGridViewHelper.AutoSizeColumnsMode   = DataGridViewAutoSizeColumnsMode.Fill;
                variablesGridViewHelper.AllowUserToAddRows    = false;
                variablesGridViewHelper.AllowUserToDeleteRows = false;

                if (debugTab.Controls.Count != 0)
                {
                    debugTab.Controls.RemoveAt(0);
                }
                debugTab.Controls.Add(variablesGridViewHelper);

                List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.VariableList;
                foreach (var variable in engineVariables)
                {
                    DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'");
                    if (foundVariables.Length == 0)
                    {
                        var type = variable.VariableValue.GetType().ToString();
                        switch (variable.VariableValue.GetType().ToString())
                        {
                        case "System.String":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    variable.VariableValue);
                            break;

                        case "System.Security.SecureString":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    "*Secure String*");
                            break;

                        case "System.Data.DataTable":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    ConvertDataTableToString((DataTable)variable.VariableValue));
                            break;

                        case "System.Data.DataRow":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    ConvertDataRowToString((DataRow)variable.VariableValue));
                            break;

                        case "System.__ComObject":
                            variableValues.Rows.Add(variable.VariableName, "Microsoft.Office.Interop.Outlook.MailItem",
                                                    ConvertMailItemToString((MailItem)variable.VariableValue));
                            break;

                        case "MimeKit.MimeMessage":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    ConvertMimeMessageToString((MimeMessage)variable.VariableValue));
                            break;

                        case "OpenQA.Selenium.Remote.RemoteWebElement":
                            variableValues.Rows.Add(variable.VariableName, "OpenQA.Selenium.IWebElement",
                                                    ConvertIWebElementToString((IWebElement)variable.VariableValue));
                            break;

                        case "System.Drawing.Bitmap":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    ConvertBitmapToString((Bitmap)variable.VariableValue));
                            break;

                        case "System.Collections.Generic.List`1[System.String]":
                        case "System.Collections.Generic.List`1[System.Data.DataTable]":
                        case "System.Collections.Generic.List`1[Microsoft.Office.Interop.Outlook.MailItem]":
                        case "System.Collections.Generic.List`1[MimeKit.MimeMessage]":
                        case "System.Collections.Generic.List`1[OpenQA.Selenium.IWebElement]":
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    ConvertListToString(variable.VariableValue));
                            break;

                        default:
                            variableValues.Rows.Add(variable.VariableName, variable.VariableValue.GetType().FullName,
                                                    "*Type Not Yet Supported*");
                            break;
                        }
                    }
                }
                variablesGridViewHelper.DataSource = variableValues;
                uiPaneTabs.SelectedTab             = debugTab;
            }
        }
Esempio n. 3
0
        private void LoadDebugTab(TabPage debugTab)
        {
            if (InvokeRequired)
            {
                var d = new LoadDebugTabDelegate(LoadDebugTab);
                Invoke(d, new object[] { debugTab });
            }
            else
            {
                DataTable variableValues = new DataTable();
                variableValues.Columns.Add("Name");
                variableValues.Columns.Add("Type");
                variableValues.Columns.Add("Value");
                variableValues.TableName = "VariableValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss");

                DataGridView variableGridViewHelper = new DataGridView();
                variableGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                variableGridViewHelper.AutoSize                = true;
                variableGridViewHelper.Dock                    = DockStyle.Fill;
                variableGridViewHelper.ColumnHeadersHeight     = 30;
                variableGridViewHelper.AutoSizeColumnsMode     = DataGridViewAutoSizeColumnsMode.Fill;
                variableGridViewHelper.AllowUserToAddRows      = false;
                variableGridViewHelper.AllowUserToDeleteRows   = false;
                variableGridViewHelper.ReadOnly                = true;
                variableGridViewHelper.CellContentDoubleClick += DebugGridViewHelper_CellContentDoubleClick;
                variableGridViewHelper.BorderStyle             = BorderStyle.None;

                DataTable argumentValues = new DataTable();
                argumentValues.Columns.Add("Name");
                argumentValues.Columns.Add("Type");
                argumentValues.Columns.Add("Value");
                argumentValues.Columns.Add("Direction");
                argumentValues.TableName = "ArgumentValuesDataTable" + DateTime.Now.ToString("MMddyyhhmmss");

                DataGridView argumentGridViewHelper = new DataGridView();
                argumentGridViewHelper.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                argumentGridViewHelper.AutoSize                = true;
                argumentGridViewHelper.Dock                    = DockStyle.Fill;
                argumentGridViewHelper.ColumnHeadersHeight     = 30;
                argumentGridViewHelper.AutoSizeColumnsMode     = DataGridViewAutoSizeColumnsMode.Fill;
                argumentGridViewHelper.AllowUserToAddRows      = false;
                argumentGridViewHelper.AllowUserToDeleteRows   = false;
                argumentGridViewHelper.ReadOnly                = true;
                argumentGridViewHelper.CellContentDoubleClick += DebugGridViewHelper_CellContentDoubleClick;
                argumentGridViewHelper.BorderStyle             = BorderStyle.None;

                if (debugTab.Controls[0].Controls.Count != 0)
                {
                    debugTab.Controls[0].Controls.Clear();
                }

                Label variableLabel = new Label();
                variableLabel.Text      = "Variables";
                variableLabel.ForeColor = Color.White;

                Label argumentLabel = new Label();
                argumentLabel.Text      = "Arguments";
                argumentLabel.ForeColor = Color.White;

                debugTab.Controls[0].Controls.Add(variableLabel);
                debugTab.Controls[0].Controls.Add(variableGridViewHelper);
                debugTab.Controls[0].Controls.Add(argumentLabel);
                debugTab.Controls[0].Controls.Add(argumentGridViewHelper);

                List <ScriptVariable> engineVariables = ((frmScriptEngine)CurrentEngine).EngineInstance.AutomationEngineContext.Variables;

                foreach (var variable in engineVariables)
                {
                    DataRow[] foundVariables = variableValues.Select("Name = '" + variable.VariableName + "'");
                    if (foundVariables.Length == 0)
                    {
                        string type = variable.VariableType.FullName;
                        if (variable.VariableValue != null && StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType).Length > 40000)
                        {
                            variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType).Substring(0, 40000));
                        }
                        else
                        {
                            variableValues.Rows.Add(variable.VariableName, type, StringMethods.ConvertObjectToString(variable.VariableValue, variable.VariableType));
                        }
                    }
                }

                List <ScriptArgument> engineArguments = ((frmScriptEngine)CurrentEngine).EngineInstance.AutomationEngineContext.Arguments;

                foreach (var argument in engineArguments)
                {
                    DataRow[] foundArguments = argumentValues.Select("Name = '" + argument.ArgumentName + "'");
                    if (foundArguments.Length == 0)
                    {
                        string type = argument.ArgumentType.FullName;
                        argumentValues.Rows.Add(argument.ArgumentName, type, StringMethods.ConvertObjectToString(argument.ArgumentValue, argument.ArgumentType),
                                                argument.Direction.ToString());
                    }
                }

                variableGridViewHelper.DataSource = variableValues;
                argumentGridViewHelper.DataSource = argumentValues;
                uiPaneTabs.SelectedTab            = debugTab;

                variableGridViewHelper.Sort(variableGridViewHelper.Columns["Name"], ListSortDirection.Ascending);
                argumentGridViewHelper.Sort(argumentGridViewHelper.Columns["Name"], ListSortDirection.Ascending);
            }
        }