public static ExperimentBase LoadExperiment()
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.AddExtension    = true;
            ofd.DefaultExt      = "et";
            ofd.Filter          = "Experiment templates (*.et)|*.et";
            ofd.CheckFileExists = true;
            ofd.CheckPathExists = true;

            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return(null);
            }

            ExperimentTemplate et = null;

            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExperimentTemplate));
            using (System.IO.StreamReader sw = new System.IO.StreamReader(ofd.FileName))
            {
                et = (ExperimentTemplate)serializer.Deserialize(sw.BaseStream);
            }

            return(et.ToExperiment());
        }
        private void SaveBatchExperimentTemplateButtonClick(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.AddExtension    = true;
            sfd.DefaultExt      = "bet";
            sfd.Filter          = "Batch experiment templates (*.bet)|*.bet";
            sfd.OverwritePrompt = true;

            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            BatchExperimentTemplate bet = BatchExperimentTemplate
                                          .Create(GetSelectedBatchMode())
                                          .WithExperimentTemplates(GetConfiguredExperiments()
                                                                   .Select(ex => ExperimentTemplate.Create(ex)));

            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(BatchExperimentTemplate));
            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName))
            {
                serializer.Serialize(sw, bet);
            }
        }
        private void SaveExperimentTemplateButtonClick(object sender, EventArgs e)
        {
            this.environmentParameterControl.ApplyChanges();
            this.agentParameterControl.ApplyChanges();
            this.experimentParameterControl.ApplyChanges();
            this.environmentParametersApplyButton.Enabled  = false;
            this.environmentParametersRevertButton.Enabled = false;
            this.agentParametersApplyButton.Enabled        = false;
            this.agentParametersRevertButton.Enabled       = false;
            this.experimentParametersApplyButton.Enabled   = false;
            this.experimentParametersRevertButton.Enabled  = false;

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.AddExtension    = true;
            sfd.DefaultExt      = "et";
            sfd.Filter          = "Experiment templates (*.et)|*.et";
            sfd.OverwritePrompt = true;

            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Reporter reporter = new Reporter();

            reporter.ReportWriters.AddRange(this.reportingConfigurationControl.GetConfiguredEditableReportWriters());

            ExperimentTemplate et = ExperimentTemplate
                                    .Create(experiment)
                                    .WithReporter(reporter);

            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ExperimentTemplate));
            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName))
            {
                serializer.Serialize(sw, et);
            }
        }