private void addExperiment(IExperiment experiment) { bool isOk = (experiment.getParameters() is IParameterList); if (isOk) { this.jwriter.writeStartObject(); this.jwriter.writePropertyName("experiment_id"); this.jwriter.writeValue(experiment.getId()); if (!String.IsNullOrEmpty(experiment.getName())) { this.jwriter.writePropertyName("name"); this.jwriter.writeValue(experiment.getName()); } if (!String.IsNullOrEmpty(experiment.getDescription())) { this.jwriter.writePropertyName("description"); this.jwriter.writeValue(experiment.getDescription()); } this.jwriter.writePropertyName("parametercollection"); this.addParameterCollection((IParameterList)experiment.getParameters()); this.jwriter.writeEndObject(); } else { throw new ArgumentException("Property 'experiment.getParameters()' of argument " + "'experiment' must be of type IParameterList."); } }
// starts an task, which created an experiment service private async Task <KeyValuePair <String, String> > distributeExperimentAsync(String seriesId, String seriesName, String seriesDescription, String seriesSoftwarename, IExperiment experiment, String dockerImage, String executionPath) { String path = executionPath; // build name for experiment service builder.setId(seriesId); builder.setName(seriesName); builder.setDescription(seriesDescription); builder.setSoftwareName(seriesSoftwarename); builder.add(experiment); String json = (String)builder.build(); builder.reset(); String experimentIdentifier = System.Guid.NewGuid().ToString() + "----" + seriesId + "-series--" + experiment.getId() + "-experiment"; Console.WriteLine("Investigator: Create experiment service task " + "with generated id\n\t " + experimentIdentifier); String serviceId = await this.client.createExperimentServiceAsync(experimentIdentifier, dockerImage, path, json); Console.WriteLine("Investigator: Experiment service task of id\n\t " + experimentIdentifier + "\n\t has been started\n\t " + "The experiment started inside the docker service with id " + serviceId); return(new KeyValuePair <string, string>(serviceId, experimentIdentifier)); }