Beispiel #1
0
        private void btnRun_Click(object sender, EventArgs e)
        {
            var    launcher = new MarsLauncher(txtRootFolder.Text, txtPythonProgram.Text);
            string stdInput;
            var    serializer = new JSONDataSerializer();

            serializer.StartSerialize();
            serializer.SerializeScalar("Python Script", txtPythonScript.Text);
            serializer.SerializeScalar("Root Folder", txtRootFolder.Text);
            serializer.SerializeScalar("A Number", 5.7);

            Dictionary <string, object> dict = GetDataAsDictionary(dgvInputProperties);
            DataTable inputTable             = GetData(dgvInputProperties);

            serializer.SerializeDictionary("InputProperties", dict);
            serializer.SerializeDataTable(inputTable, "InputTable");
            stdInput = serializer.EndSerialize();

            txtOutput.Text = "Launching " + txtPythonScript.Text;
            lblStatus.Text = "Running " + txtPythonScript.Text;
            DataSet result = launcher.Run(txtPythonScript.Text, stdInput);

            txtOutput.Text = launcher.Output;

            var deserializerFactory = DeserializerFactory.Instance();

            for (int i = 0; i < launcher.Count; ++i)
            {
                var deserializer = deserializerFactory.CreateDeserializer(launcher.OutputDataType[i]);
                deserializer.StartDeserialize(launcher.OutputData[i].ToString());
                var dataTables = deserializer.DeserializeDataTables(columnTypes: new System.Type[] { typeof(DateTime), typeof(string), typeof(double), typeof(double) }.ToList());

                foreach (var data in dataTables)
                {
                    DisplayData(data);
                }

                if (deserializer.GetType() == typeof(JSONDataSerializer))
                {
                    var images = ((JSONDataSerializer)deserializer).DeserializeImages();
                    foreach (var image in images)
                    {
                        DisplayData(image);
                    }
                }
            }

            serializer.EndDeserialize();
            lblStatus.Text = "Done";
        }