Index: trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj	(revision 13534)
@@ -333,4 +333,8 @@
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
+      <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
+      <Name>HeuristicLab.Data.Views-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
Index: trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs	(revision 13534)
@@ -49,6 +49,15 @@
       this.refreshButton = new System.Windows.Forms.Button();
       this.cloneProblemButton = new System.Windows.Forms.Button();
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.parametersTabPage = new System.Windows.Forms.TabPage();
+      this.characteristicsTabPage = new System.Windows.Forms.TabPage();
       this.parameterCollectionView = new HeuristicLab.Core.Views.ParameterCollectionView();
+      this.downloadCharacteristicsButton = new System.Windows.Forms.Button();
+      this.uploadCharacteristicsButton = new System.Windows.Forms.Button();
+      this.characteristicsMatrixView = new HeuristicLab.Data.Views.StringConvertibleMatrixView();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.tabControl.SuspendLayout();
+      this.parametersTabPage.SuspendLayout();
+      this.characteristicsTabPage.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -74,5 +83,5 @@
       // 
       this.problemComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.problemComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.problemComboBox.FormattingEnabled = true;
@@ -116,17 +125,88 @@
       this.cloneProblemButton.Click += new System.EventHandler(this.cloneProblemButton_Click);
       // 
+      // tabControl
+      // 
+      this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.tabControl.Controls.Add(this.parametersTabPage);
+      this.tabControl.Controls.Add(this.characteristicsTabPage);
+      this.tabControl.Location = new System.Drawing.Point(6, 53);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(700, 340);
+      this.tabControl.TabIndex = 8;
+      // 
+      // parametersTabPage
+      // 
+      this.parametersTabPage.Controls.Add(this.parameterCollectionView);
+      this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
+      this.parametersTabPage.Name = "parametersTabPage";
+      this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.parametersTabPage.Size = new System.Drawing.Size(692, 314);
+      this.parametersTabPage.TabIndex = 0;
+      this.parametersTabPage.Text = "Parameters";
+      this.parametersTabPage.UseVisualStyleBackColor = true;
+      // 
+      // characteristicsTabPage
+      // 
+      this.characteristicsTabPage.Controls.Add(this.characteristicsMatrixView);
+      this.characteristicsTabPage.Controls.Add(this.uploadCharacteristicsButton);
+      this.characteristicsTabPage.Controls.Add(this.downloadCharacteristicsButton);
+      this.characteristicsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.characteristicsTabPage.Name = "characteristicsTabPage";
+      this.characteristicsTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.characteristicsTabPage.Size = new System.Drawing.Size(692, 314);
+      this.characteristicsTabPage.TabIndex = 1;
+      this.characteristicsTabPage.Text = "Characteristics";
+      this.characteristicsTabPage.UseVisualStyleBackColor = true;
+      // 
       // parameterCollectionView
       // 
       this.parameterCollectionView.AllowEditingOfHiddenParameters = false;
-      this.parameterCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
       this.parameterCollectionView.Caption = "ParameterCollection View";
       this.parameterCollectionView.Content = null;
-      this.parameterCollectionView.Location = new System.Drawing.Point(0, 53);
+      this.parameterCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.parameterCollectionView.Location = new System.Drawing.Point(3, 3);
       this.parameterCollectionView.Name = "parameterCollectionView";
-      this.parameterCollectionView.ReadOnly = false;
-      this.parameterCollectionView.Size = new System.Drawing.Size(706, 340);
-      this.parameterCollectionView.TabIndex = 7;
+      this.parameterCollectionView.ReadOnly = true;
+      this.parameterCollectionView.ShowDetails = true;
+      this.parameterCollectionView.Size = new System.Drawing.Size(686, 308);
+      this.parameterCollectionView.TabIndex = 8;
+      // 
+      // downloadCharacteristicsButton
+      // 
+      this.downloadCharacteristicsButton.Location = new System.Drawing.Point(6, 6);
+      this.downloadCharacteristicsButton.Name = "downloadCharacteristicsButton";
+      this.downloadCharacteristicsButton.Size = new System.Drawing.Size(26, 23);
+      this.downloadCharacteristicsButton.TabIndex = 0;
+      this.downloadCharacteristicsButton.Text = "Download";
+      this.downloadCharacteristicsButton.UseVisualStyleBackColor = true;
+      this.downloadCharacteristicsButton.Click += new System.EventHandler(this.downloadCharacteristicsButton_Click);
+      // 
+      // uploadCharacteristicsButton
+      // 
+      this.uploadCharacteristicsButton.Location = new System.Drawing.Point(38, 6);
+      this.uploadCharacteristicsButton.Name = "uploadCharacteristicsButton";
+      this.uploadCharacteristicsButton.Size = new System.Drawing.Size(26, 23);
+      this.uploadCharacteristicsButton.TabIndex = 0;
+      this.uploadCharacteristicsButton.Text = "Upload";
+      this.uploadCharacteristicsButton.UseVisualStyleBackColor = true;
+      this.uploadCharacteristicsButton.Click += new System.EventHandler(this.uploadCharacteristicsButton_Click);
+      // 
+      // characteristicsMatrixView
+      // 
+      this.characteristicsMatrixView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.characteristicsMatrixView.Caption = "StringConvertibleMatrix View";
+      this.characteristicsMatrixView.Content = null;
+      this.characteristicsMatrixView.Location = new System.Drawing.Point(6, 35);
+      this.characteristicsMatrixView.Name = "characteristicsMatrixView";
+      this.characteristicsMatrixView.ReadOnly = false;
+      this.characteristicsMatrixView.ShowRowsAndColumnsTextBox = false;
+      this.characteristicsMatrixView.ShowStatisticalInformation = false;
+      this.characteristicsMatrixView.Size = new System.Drawing.Size(680, 273);
+      this.characteristicsMatrixView.TabIndex = 1;
       // 
       // OKBProblemView
@@ -134,6 +214,6 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.tabControl);
       this.Controls.Add(this.problemComboBox);
-      this.Controls.Add(this.parameterCollectionView);
       this.Controls.Add(this.problemLabel);
       this.Controls.Add(this.cloneProblemButton);
@@ -144,10 +224,13 @@
       this.Controls.SetChildIndex(this.cloneProblemButton, 0);
       this.Controls.SetChildIndex(this.problemLabel, 0);
-      this.Controls.SetChildIndex(this.parameterCollectionView, 0);
+      this.Controls.SetChildIndex(this.problemComboBox, 0);
+      this.Controls.SetChildIndex(this.tabControl, 0);
       this.Controls.SetChildIndex(this.nameTextBox, 0);
       this.Controls.SetChildIndex(this.nameLabel, 0);
       this.Controls.SetChildIndex(this.infoLabel, 0);
-      this.Controls.SetChildIndex(this.problemComboBox, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.tabControl.ResumeLayout(false);
+      this.parametersTabPage.ResumeLayout(false);
+      this.characteristicsTabPage.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -161,5 +244,11 @@
     private System.Windows.Forms.Button refreshButton;
     private System.Windows.Forms.Button cloneProblemButton;
-    private HeuristicLab.Core.Views.ParameterCollectionView parameterCollectionView;
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage parametersTabPage;
+    private System.Windows.Forms.TabPage characteristicsTabPage;
+    private Core.Views.ParameterCollectionView parameterCollectionView;
+    private Data.Views.StringConvertibleMatrixView characteristicsMatrixView;
+    private System.Windows.Forms.Button uploadCharacteristicsButton;
+    private System.Windows.Forms.Button downloadCharacteristicsButton;
 
 
Index: trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs	(revision 13534)
@@ -21,7 +21,10 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Windows.Forms;
+using HeuristicLab.Common.Resources;
 using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
 using HeuristicLab.MainForm;
 
@@ -38,4 +41,8 @@
     public OKBProblemView() {
       InitializeComponent();
+      downloadCharacteristicsButton.Text = string.Empty;
+      downloadCharacteristicsButton.Image = VSImageLibrary.Refresh;
+      uploadCharacteristicsButton.Text = string.Empty;
+      uploadCharacteristicsButton.Image = VSImageLibrary.PublishToWeb;
     }
 
@@ -73,4 +80,8 @@
       refreshButton.Enabled = (Content != null) && !ReadOnly && !Locked;
       parameterCollectionView.Enabled = Content != null;
+      characteristicsMatrixView.Enabled = Content != null;
+      downloadCharacteristicsButton.Enabled = Content != null && Content.ProblemId != -1 && !Locked;
+      uploadCharacteristicsButton.Enabled = Content != null && Content.ProblemId != -1 && !Locked && !ReadOnly
+        && characteristicsMatrixView.Content != null && characteristicsMatrixView.Content.Rows > 0;
     }
 
@@ -103,6 +114,8 @@
       if (InvokeRequired)
         Invoke(new EventHandler(Content_ProblemChanged), sender, e);
-      else
+      else {
         OnContentChanged();
+        SetEnabledStateOfControls();
+      }
     }
     #endregion
@@ -123,4 +136,29 @@
       }
     }
+    private void downloadCharacteristicsButton_Click(object sender, EventArgs e) {
+      var values = RunCreationClient.GetCharacteristicValues(Content.ProblemId).ToList();
+      var content = new StringMatrix(values.Count, 3);
+      for (var i = 0; i < values.Count; i++) {
+        content[i, 0] = values[i].Name;
+        content[i, 1] = values[i].ToString();
+        content[i, 2] = values[i].GetType().Name;
+      }
+      characteristicsMatrixView.Content = content;
+      SetEnabledStateOfControls();
+    }
+    private void uploadCharacteristicsButton_Click(object sender, EventArgs e) {
+      var matrix = characteristicsMatrixView.Content as StringMatrix;
+      if (matrix == null) return;
+      var values = new List<Value>(matrix.Rows);
+      for (var i = 0; i < matrix.Rows; i++) {
+        var name = matrix[i, 0];
+        var strValue = matrix[i, 1];
+        var type = matrix[i, 2];
+        values.Add(Value.Create(name, strValue, type));
+      }
+      try {
+        RunCreationClient.SetCharacteristicValues(Content.ProblemId, values);
+      } catch (Exception ex) { PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex); }
+    }
     #endregion
 
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj	(revision 13534)
@@ -169,4 +169,5 @@
     <Compile Include="RunCreation\ServiceClient\RunCreationServiceClient.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="RunCreation\ServiceClient\Value.cs" />
     <Compile Include="RunCreation\SingleObjectiveOKBProblem.cs" />
     <None Include="app.config" />
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/QueryClient.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/QueryClient.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/QueryClient.cs	(revision 13534)
@@ -98,10 +98,4 @@
     #endregion
 
-    #region Characteristic Methods
-    public List<Value> GetCharacteristics(long problemId) {
-      return CallQueryService(s => s.GetCharacteristics(problemId));
-    }
-    #endregion
-
     #region OKB-Item Conversion
     public Optimization.IRun ConvertToOptimizationRun(Run run) {
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/ServiceClient/QueryServiceClient.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/ServiceClient/QueryServiceClient.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/Query/ServiceClient/QueryServiceClient.cs	(revision 13534)
@@ -1896,10 +1896,4 @@
         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQueryService/GetValueNames", ReplyAction="http://tempuri.org/IQueryService/GetValueNamesResponse")]
         System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.Query.ValueName>> GetValueNamesAsync();
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQueryService/GetCharacteristics", ReplyAction="http://tempuri.org/IQueryService/GetCharacteristicsResponse")]
-        System.Collections.Generic.List<HeuristicLab.Clients.OKB.Query.Value> GetCharacteristics(long problemId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQueryService/GetCharacteristics", ReplyAction="http://tempuri.org/IQueryService/GetCharacteristicsResponse")]
-        System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.Query.Value>> GetCharacteristicsAsync(long problemId);
     }
     
@@ -1997,14 +1991,4 @@
             return base.Channel.GetValueNamesAsync();
         }
-        
-        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Query.Value> GetCharacteristics(long problemId)
-        {
-            return base.Channel.GetCharacteristics(problemId);
-        }
-        
-        public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.Query.Value>> GetCharacteristicsAsync(long problemId)
-        {
-            return base.Channel.GetCharacteristicsAsync(problemId);
-        }
     }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/RunCreationClient.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/RunCreationClient.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/RunCreationClient.cs	(revision 13534)
@@ -22,4 +22,5 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Clients.Common;
 using HeuristicLab.Common;
@@ -100,6 +101,14 @@
 
     #region Characteristic Methods
-    public static void SetCharacteristicValue(long problemId, string characteristicName, Value v) {
-      CallRunCreationService(s => s.SetCharacteristicValue(problemId, characteristicName, v));
+    public static IEnumerable<Value> GetCharacteristicValues(long problemId) {
+      return CallRunCreationService(s => s.GetCharacteristicValues(problemId));
+    }
+
+    public static void SetCharacteristicValue(long problemId, Value v) {
+      CallRunCreationService(s => s.SetCharacteristicValue(problemId, v));
+    }
+
+    public static void SetCharacteristicValues(long problemId, IEnumerable<Value> values) {
+      CallRunCreationService(s => s.SetCharacteristicValues(problemId, values.ToList()));
     }
     #endregion
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/BoolValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/BoolValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/BoolValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class BoolValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/DoubleValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/DoubleValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/DoubleValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class DoubleValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/FloatValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/FloatValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/FloatValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class FloatValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/IntValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/IntValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/IntValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class IntValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/LongValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/LongValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/LongValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class LongValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/PercentValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/PercentValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/PercentValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class PercentValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return (100 * Value).ToString(CultureInfo.CurrentCulture.NumberFormat) + "%";
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/RunCreationServiceClient.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/RunCreationServiceClient.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/RunCreationServiceClient.cs	(revision 13534)
@@ -9,1207 +9,1010 @@
 //------------------------------------------------------------------------------
 
-namespace HeuristicLab.Clients.OKB.RunCreation
-{
-    using System.Runtime.Serialization;
-    
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="Algorithm", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class Algorithm : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private HeuristicLab.Clients.OKB.RunCreation.AlgorithmClass AlgorithmClassField;
-        
-        private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
-        
-        private string DescriptionField;
-        
-        private long IdField;
-        
-        private string NameField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.OKB.RunCreation.AlgorithmClass AlgorithmClass
-        {
-            get
-            {
-                return this.AlgorithmClassField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.AlgorithmClassField, value) != true))
-                {
-                    this.AlgorithmClassField = value;
-                    this.RaisePropertyChanged("AlgorithmClass");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.OKB.RunCreation.DataType DataType
-        {
-            get
-            {
-                return this.DataTypeField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DataTypeField, value) != true))
-                {
-                    this.DataTypeField = value;
-                    this.RaisePropertyChanged("DataType");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Description
-        {
-            get
-            {
-                return this.DescriptionField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DescriptionField, value) != true))
-                {
-                    this.DescriptionField = value;
-                    this.RaisePropertyChanged("Description");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long Id
-        {
-            get
-            {
-                return this.IdField;
-            }
-            set
-            {
-                if ((this.IdField.Equals(value) != true))
-                {
-                    this.IdField = value;
-                    this.RaisePropertyChanged("Id");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="AlgorithmClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class AlgorithmClass : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private string DescriptionField;
-        
-        private string NameField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Description
-        {
-            get
-            {
-                return this.DescriptionField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DescriptionField, value) != true))
-                {
-                    this.DescriptionField = value;
-                    this.RaisePropertyChanged("Description");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="DataType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class DataType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private string NameField;
-        
-        private string TypeNameField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string TypeName
-        {
-            get
-            {
-                return this.TypeNameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.TypeNameField, value) != true))
-                {
-                    this.TypeNameField = value;
-                    this.RaisePropertyChanged("TypeName");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="Problem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class Problem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
-        
-        private string DescriptionField;
-        
-        private long IdField;
-        
-        private string NameField;
-        
-        private HeuristicLab.Clients.OKB.RunCreation.ProblemClass ProblemClassField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.OKB.RunCreation.DataType DataType
-        {
-            get
-            {
-                return this.DataTypeField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DataTypeField, value) != true))
-                {
-                    this.DataTypeField = value;
-                    this.RaisePropertyChanged("DataType");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Description
-        {
-            get
-            {
-                return this.DescriptionField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DescriptionField, value) != true))
-                {
-                    this.DescriptionField = value;
-                    this.RaisePropertyChanged("Description");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long Id
-        {
-            get
-            {
-                return this.IdField;
-            }
-            set
-            {
-                if ((this.IdField.Equals(value) != true))
-                {
-                    this.IdField = value;
-                    this.RaisePropertyChanged("Id");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.OKB.RunCreation.ProblemClass ProblemClass
-        {
-            get
-            {
-                return this.ProblemClassField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ProblemClassField, value) != true))
-                {
-                    this.ProblemClassField = value;
-                    this.RaisePropertyChanged("ProblemClass");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="ProblemClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class ProblemClass : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private string DescriptionField;
-        
-        private string NameField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Description
-        {
-            get
-            {
-                return this.DescriptionField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DescriptionField, value) != true))
-                {
-                    this.DescriptionField = value;
-                    this.RaisePropertyChanged("Description");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="Run", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class Run : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private long AlgorithmIdField;
-        
-        private System.Guid ClientIdField;
-        
-        private System.DateTime CreatedDateField;
-        
-        private System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ParameterValuesField;
-        
-        private long ProblemIdField;
-        
-        private System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ResultValuesField;
-        
-        private System.Guid UserIdField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long AlgorithmId
-        {
-            get
-            {
-                return this.AlgorithmIdField;
-            }
-            set
-            {
-                if ((this.AlgorithmIdField.Equals(value) != true))
-                {
-                    this.AlgorithmIdField = value;
-                    this.RaisePropertyChanged("AlgorithmId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid ClientId
-        {
-            get
-            {
-                return this.ClientIdField;
-            }
-            set
-            {
-                if ((this.ClientIdField.Equals(value) != true))
-                {
-                    this.ClientIdField = value;
-                    this.RaisePropertyChanged("ClientId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.DateTime CreatedDate
-        {
-            get
-            {
-                return this.CreatedDateField;
-            }
-            set
-            {
-                if ((this.CreatedDateField.Equals(value) != true))
-                {
-                    this.CreatedDateField = value;
-                    this.RaisePropertyChanged("CreatedDate");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ParameterValues
-        {
-            get
-            {
-                return this.ParameterValuesField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ParameterValuesField, value) != true))
-                {
-                    this.ParameterValuesField = value;
-                    this.RaisePropertyChanged("ParameterValues");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long ProblemId
-        {
-            get
-            {
-                return this.ProblemIdField;
-            }
-            set
-            {
-                if ((this.ProblemIdField.Equals(value) != true))
-                {
-                    this.ProblemIdField = value;
-                    this.RaisePropertyChanged("ProblemId");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ResultValues
-        {
-            get
-            {
-                return this.ResultValuesField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ResultValuesField, value) != true))
-                {
-                    this.ResultValuesField = value;
-                    this.RaisePropertyChanged("ResultValues");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public System.Guid UserId
-        {
-            get
-            {
-                return this.UserIdField;
-            }
-            set
-            {
-                if ((this.UserIdField.Equals(value) != true))
-                {
-                    this.UserIdField = value;
-                    this.RaisePropertyChanged("UserId");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="Value", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.IntValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.LongValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.FloatValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.PercentValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.TimeSpanValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.BoolValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.DoubleValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.StringValue))]
-    [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.BinaryValue))]
-    public partial class Value : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
-        
-        private string NameField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public HeuristicLab.Clients.OKB.RunCreation.DataType DataType
-        {
-            get
-            {
-                return this.DataTypeField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.DataTypeField, value) != true))
-                {
-                    this.DataTypeField = value;
-                    this.RaisePropertyChanged("DataType");
-                }
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Name
-        {
-            get
-            {
-                return this.NameField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.NameField, value) != true))
-                {
-                    this.NameField = value;
-                    this.RaisePropertyChanged("Name");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="IntValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class IntValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private int ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public int Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="LongValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class LongValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private long ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="FloatValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class FloatValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private float ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public float Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="PercentValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class PercentValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private double ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public double Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="TimeSpanValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class TimeSpanValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private long ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public long Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="BoolValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class BoolValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private bool ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public bool Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="DoubleValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class DoubleValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private double ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public double Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((this.ValueField.Equals(value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="StringValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class StringValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private string ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ValueField, value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="BinaryValue", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
-        "aTransfer")]
-    public partial class BinaryValue : HeuristicLab.Clients.OKB.RunCreation.Value
-    {
-        
-        private byte[] ValueField;
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public byte[] Value
-        {
-            get
-            {
-                return this.ValueField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.ValueField, value) != true))
-                {
-                    this.ValueField = value;
-                    this.RaisePropertyChanged("Value");
-                }
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="MissingProblem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
-    public partial class MissingProblem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private string MessageField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Message
-        {
-            get
-            {
-                return this.MessageField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.MessageField, value) != true))
-                {
-                    this.MessageField = value;
-                    this.RaisePropertyChanged("Message");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-    [System.Runtime.Serialization.DataContractAttribute(Name="UnknownCharacteristicType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
-    public partial class UnknownCharacteristicType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
-    {
-        
-        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-        
-        private string MessageField;
-        
-        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
-        {
-            get
-            {
-                return this.extensionDataField;
-            }
-            set
-            {
-                this.extensionDataField = value;
-            }
-        }
-        
-        [System.Runtime.Serialization.DataMemberAttribute()]
-        public string Message
-        {
-            get
-            {
-                return this.MessageField;
-            }
-            set
-            {
-                if ((object.ReferenceEquals(this.MessageField, value) != true))
-                {
-                    this.MessageField = value;
-                    this.RaisePropertyChanged("Message");
-                }
-            }
-        }
-        
-        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-        
-        protected void RaisePropertyChanged(string propertyName)
-        {
-            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if ((propertyChanged != null))
-            {
-                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-            }
-        }
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.Clients.OKB.RunCreation.IRunCreationService")]
-    public interface IRunCreationService
-    {
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetAlgorithms", ReplyAction="http://tempuri.org/IRunCreationService/GetAlgorithmsResponse")]
-        System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm> GetAlgorithms(string platformName);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetAlgorithms", ReplyAction="http://tempuri.org/IRunCreationService/GetAlgorithmsResponse")]
-        System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm>> GetAlgorithmsAsync(string platformName);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetAlgorithmData", ReplyAction="http://tempuri.org/IRunCreationService/GetAlgorithmDataResponse")]
-        byte[] GetAlgorithmData(long algorithmId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetAlgorithmData", ReplyAction="http://tempuri.org/IRunCreationService/GetAlgorithmDataResponse")]
-        System.Threading.Tasks.Task<byte[]> GetAlgorithmDataAsync(long algorithmId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetProblems", ReplyAction="http://tempuri.org/IRunCreationService/GetProblemsResponse")]
-        System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem> GetProblems(string platformName);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetProblems", ReplyAction="http://tempuri.org/IRunCreationService/GetProblemsResponse")]
-        System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem>> GetProblemsAsync(string platformName);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetProblemData", ReplyAction="http://tempuri.org/IRunCreationService/GetProblemDataResponse")]
-        byte[] GetProblemData(long problemId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/GetProblemData", ReplyAction="http://tempuri.org/IRunCreationService/GetProblemDataResponse")]
-        System.Threading.Tasks.Task<byte[]> GetProblemDataAsync(long problemId);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/AddRun", ReplyAction="http://tempuri.org/IRunCreationService/AddRunResponse")]
-        void AddRun(HeuristicLab.Clients.OKB.RunCreation.Run run);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/AddRun", ReplyAction="http://tempuri.org/IRunCreationService/AddRunResponse")]
-        System.Threading.Tasks.Task AddRunAsync(HeuristicLab.Clients.OKB.RunCreation.Run run);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/SetCharacteristicValue", ReplyAction="http://tempuri.org/IRunCreationService/SetCharacteristicValueResponse")]
-        [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.MissingProblem), Action="http://tempuri.org/IRunCreationService/SetCharacteristicValueMissingProblemFault", Name="MissingProblem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
-        [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.UnknownCharacteristicType), Action="http://tempuri.org/IRunCreationService/SetCharacteristicValueUnknownCharacteristi" +
-            "cTypeFault", Name="UnknownCharacteristicType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
-        void SetCharacteristicValue(long problemId, string characteristicName, HeuristicLab.Clients.OKB.RunCreation.Value value);
-        
-        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IRunCreationService/SetCharacteristicValue", ReplyAction="http://tempuri.org/IRunCreationService/SetCharacteristicValueResponse")]
-        System.Threading.Tasks.Task SetCharacteristicValueAsync(long problemId, string characteristicName, HeuristicLab.Clients.OKB.RunCreation.Value value);
-    }
-    
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    public interface IRunCreationServiceChannel : HeuristicLab.Clients.OKB.RunCreation.IRunCreationService, System.ServiceModel.IClientChannel
-    {
-    }
-    
-    [System.Diagnostics.DebuggerStepThroughAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-    public partial class RunCreationServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.RunCreation.IRunCreationService>, HeuristicLab.Clients.OKB.RunCreation.IRunCreationService
-    {
-        
-        public RunCreationServiceClient()
-        {
-        }
-        
-        public RunCreationServiceClient(string endpointConfigurationName) : 
-                base(endpointConfigurationName)
-        {
-        }
-        
-        public RunCreationServiceClient(string endpointConfigurationName, string remoteAddress) : 
-                base(endpointConfigurationName, remoteAddress)
-        {
-        }
-        
-        public RunCreationServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
-                base(endpointConfigurationName, remoteAddress)
-        {
-        }
-        
-        public RunCreationServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
-                base(binding, remoteAddress)
-        {
-        }
-        
-        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm> GetAlgorithms(string platformName)
-        {
-            return base.Channel.GetAlgorithms(platformName);
-        }
-        
-        public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm>> GetAlgorithmsAsync(string platformName)
-        {
-            return base.Channel.GetAlgorithmsAsync(platformName);
-        }
-        
-        public byte[] GetAlgorithmData(long algorithmId)
-        {
-            return base.Channel.GetAlgorithmData(algorithmId);
-        }
-        
-        public System.Threading.Tasks.Task<byte[]> GetAlgorithmDataAsync(long algorithmId)
-        {
-            return base.Channel.GetAlgorithmDataAsync(algorithmId);
-        }
-        
-        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem> GetProblems(string platformName)
-        {
-            return base.Channel.GetProblems(platformName);
-        }
-        
-        public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem>> GetProblemsAsync(string platformName)
-        {
-            return base.Channel.GetProblemsAsync(platformName);
-        }
-        
-        public byte[] GetProblemData(long problemId)
-        {
-            return base.Channel.GetProblemData(problemId);
-        }
-        
-        public System.Threading.Tasks.Task<byte[]> GetProblemDataAsync(long problemId)
-        {
-            return base.Channel.GetProblemDataAsync(problemId);
-        }
-        
-        public void AddRun(HeuristicLab.Clients.OKB.RunCreation.Run run)
-        {
-            base.Channel.AddRun(run);
-        }
-        
-        public System.Threading.Tasks.Task AddRunAsync(HeuristicLab.Clients.OKB.RunCreation.Run run)
-        {
-            return base.Channel.AddRunAsync(run);
-        }
-        
-        public void SetCharacteristicValue(long problemId, string characteristicName, HeuristicLab.Clients.OKB.RunCreation.Value value)
-        {
-            base.Channel.SetCharacteristicValue(problemId, characteristicName, value);
-        }
-        
-        public System.Threading.Tasks.Task SetCharacteristicValueAsync(long problemId, string characteristicName, HeuristicLab.Clients.OKB.RunCreation.Value value)
-        {
-            return base.Channel.SetCharacteristicValueAsync(problemId, characteristicName, value);
-        }
-    }
+namespace HeuristicLab.Clients.OKB.RunCreation {
+
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Algorithm", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class Algorithm : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private HeuristicLab.Clients.OKB.RunCreation.AlgorithmClass AlgorithmClassField;
+
+    private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
+
+    private string DescriptionField;
+
+    private long IdField;
+
+    private string NameField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.RunCreation.AlgorithmClass AlgorithmClass {
+      get {
+        return this.AlgorithmClassField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmClassField, value) != true)) {
+          this.AlgorithmClassField = value;
+          this.RaisePropertyChanged("AlgorithmClass");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.RunCreation.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class AlgorithmClass : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private string DescriptionField;
+
+    private string NameField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "DataType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class DataType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private string NameField;
+
+    private string TypeNameField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string TypeName {
+      get {
+        return this.TypeNameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.TypeNameField, value) != true)) {
+          this.TypeNameField = value;
+          this.RaisePropertyChanged("TypeName");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Problem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class Problem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
+
+    private string DescriptionField;
+
+    private long IdField;
+
+    private string NameField;
+
+    private HeuristicLab.Clients.OKB.RunCreation.ProblemClass ProblemClassField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.RunCreation.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.RunCreation.ProblemClass ProblemClass {
+      get {
+        return this.ProblemClassField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemClassField, value) != true)) {
+          this.ProblemClassField = value;
+          this.RaisePropertyChanged("ProblemClass");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class ProblemClass : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private string DescriptionField;
+
+    private string NameField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Run", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class Run : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmIdField;
+
+    private System.Guid ClientIdField;
+
+    private System.DateTime CreatedDateField;
+
+    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ParameterValuesField;
+
+    private long ProblemIdField;
+
+    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ResultValuesField;
+
+    private System.Guid UserIdField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid ClientId {
+      get {
+        return this.ClientIdField;
+      }
+      set {
+        if ((this.ClientIdField.Equals(value) != true)) {
+          this.ClientIdField = value;
+          this.RaisePropertyChanged("ClientId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.DateTime CreatedDate {
+      get {
+        return this.CreatedDateField;
+      }
+      set {
+        if ((this.CreatedDateField.Equals(value) != true)) {
+          this.CreatedDateField = value;
+          this.RaisePropertyChanged("CreatedDate");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ParameterValues {
+      get {
+        return this.ParameterValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ParameterValuesField, value) != true)) {
+          this.ParameterValuesField = value;
+          this.RaisePropertyChanged("ParameterValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> ResultValues {
+      get {
+        return this.ResultValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultValuesField, value) != true)) {
+          this.ResultValuesField = value;
+          this.RaisePropertyChanged("ResultValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid UserId {
+      get {
+        return this.UserIdField;
+      }
+      set {
+        if ((this.UserIdField.Equals(value) != true)) {
+          this.UserIdField = value;
+          this.RaisePropertyChanged("UserId");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Value", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.BoolValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.LongValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.TimeSpanValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.IntValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.FloatValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.DoubleValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.StringValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.BinaryValue))]
+  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.PercentValue))]
+  public partial class Value : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private HeuristicLab.Clients.OKB.RunCreation.DataType DataTypeField;
+
+    private string NameField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.RunCreation.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "BoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class BoolValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private bool ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public bool Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "LongValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class LongValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private long ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "TimeSpanValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class TimeSpanValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private long ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "IntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class IntValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private int ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public int Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "FloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class FloatValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private float ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public float Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "DoubleValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class DoubleValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private double ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public double Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "StringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class StringValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private string ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "BinaryValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class BinaryValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private byte[] ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public byte[] Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "PercentValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation.Dat" +
+      "aTransfer")]
+  public partial class PercentValue : HeuristicLab.Clients.OKB.RunCreation.Value {
+
+    private double ValueField;
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public double Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "MissingProblem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+  public partial class MissingProblem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private string MessageField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Message {
+      get {
+        return this.MessageField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.MessageField, value) != true)) {
+          this.MessageField = value;
+          this.RaisePropertyChanged("Message");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "UnknownCharacteristicType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+  public partial class UnknownCharacteristicType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private string MessageField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Message {
+      get {
+        return this.MessageField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.MessageField, value) != true)) {
+          this.MessageField = value;
+          this.RaisePropertyChanged("Message");
+        }
+      }
+    }
+
+    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+
+    protected void RaisePropertyChanged(string propertyName) {
+      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+      if ((propertyChanged != null)) {
+        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+      }
+    }
+  }
+
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "HeuristicLab.Clients.OKB.RunCreation.IRunCreationService")]
+  public interface IRunCreationService {
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetAlgorithms", ReplyAction = "http://tempuri.org/IRunCreationService/GetAlgorithmsResponse")]
+    System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm> GetAlgorithms(string platformName);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetAlgorithms", ReplyAction = "http://tempuri.org/IRunCreationService/GetAlgorithmsResponse")]
+    System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm>> GetAlgorithmsAsync(string platformName);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetAlgorithmData", ReplyAction = "http://tempuri.org/IRunCreationService/GetAlgorithmDataResponse")]
+    byte[] GetAlgorithmData(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetAlgorithmData", ReplyAction = "http://tempuri.org/IRunCreationService/GetAlgorithmDataResponse")]
+    System.Threading.Tasks.Task<byte[]> GetAlgorithmDataAsync(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetProblems", ReplyAction = "http://tempuri.org/IRunCreationService/GetProblemsResponse")]
+    System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem> GetProblems(string platformName);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetProblems", ReplyAction = "http://tempuri.org/IRunCreationService/GetProblemsResponse")]
+    System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem>> GetProblemsAsync(string platformName);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetProblemData", ReplyAction = "http://tempuri.org/IRunCreationService/GetProblemDataResponse")]
+    byte[] GetProblemData(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetProblemData", ReplyAction = "http://tempuri.org/IRunCreationService/GetProblemDataResponse")]
+    System.Threading.Tasks.Task<byte[]> GetProblemDataAsync(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/AddRun", ReplyAction = "http://tempuri.org/IRunCreationService/AddRunResponse")]
+    void AddRun(HeuristicLab.Clients.OKB.RunCreation.Run run);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/AddRun", ReplyAction = "http://tempuri.org/IRunCreationService/AddRunResponse")]
+    System.Threading.Tasks.Task AddRunAsync(HeuristicLab.Clients.OKB.RunCreation.Run run);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetCharacteristicValues", ReplyAction = "http://tempuri.org/IRunCreationService/GetCharacteristicValuesResponse")]
+    System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> GetCharacteristicValues(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/GetCharacteristicValues", ReplyAction = "http://tempuri.org/IRunCreationService/GetCharacteristicValuesResponse")]
+    System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value>> GetCharacteristicValuesAsync(long problemId);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValue", ReplyAction = "http://tempuri.org/IRunCreationService/SetCharacteristicValueResponse")]
+    [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.MissingProblem), Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValueMissingProblemFault", Name = "MissingProblem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+    [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.UnknownCharacteristicType), Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValueUnknownCharacteristi" +
+        "cTypeFault", Name = "UnknownCharacteristicType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+    void SetCharacteristicValue(long problemId, HeuristicLab.Clients.OKB.RunCreation.Value value);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValue", ReplyAction = "http://tempuri.org/IRunCreationService/SetCharacteristicValueResponse")]
+    System.Threading.Tasks.Task SetCharacteristicValueAsync(long problemId, HeuristicLab.Clients.OKB.RunCreation.Value value);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValues", ReplyAction = "http://tempuri.org/IRunCreationService/SetCharacteristicValuesResponse")]
+    [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.MissingProblem), Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValuesMissingProblemFault" +
+        "", Name = "MissingProblem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+    [System.ServiceModel.FaultContractAttribute(typeof(HeuristicLab.Clients.OKB.RunCreation.UnknownCharacteristicType), Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValuesUnknownCharacterist" +
+        "icTypeFault", Name = "UnknownCharacteristicType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.RunCreation")]
+    void SetCharacteristicValues(long problemId, System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> values);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IRunCreationService/SetCharacteristicValues", ReplyAction = "http://tempuri.org/IRunCreationService/SetCharacteristicValuesResponse")]
+    System.Threading.Tasks.Task SetCharacteristicValuesAsync(long problemId, System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> values);
+  }
+
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public interface IRunCreationServiceChannel : HeuristicLab.Clients.OKB.RunCreation.IRunCreationService, System.ServiceModel.IClientChannel {
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class RunCreationServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.RunCreation.IRunCreationService>, HeuristicLab.Clients.OKB.RunCreation.IRunCreationService {
+
+    public RunCreationServiceClient() {
+    }
+
+    public RunCreationServiceClient(string endpointConfigurationName) :
+      base(endpointConfigurationName) {
+    }
+
+    public RunCreationServiceClient(string endpointConfigurationName, string remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public RunCreationServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public RunCreationServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(binding, remoteAddress) {
+    }
+
+    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm> GetAlgorithms(string platformName) {
+      return base.Channel.GetAlgorithms(platformName);
+    }
+
+    public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Algorithm>> GetAlgorithmsAsync(string platformName) {
+      return base.Channel.GetAlgorithmsAsync(platformName);
+    }
+
+    public byte[] GetAlgorithmData(long algorithmId) {
+      return base.Channel.GetAlgorithmData(algorithmId);
+    }
+
+    public System.Threading.Tasks.Task<byte[]> GetAlgorithmDataAsync(long algorithmId) {
+      return base.Channel.GetAlgorithmDataAsync(algorithmId);
+    }
+
+    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem> GetProblems(string platformName) {
+      return base.Channel.GetProblems(platformName);
+    }
+
+    public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Problem>> GetProblemsAsync(string platformName) {
+      return base.Channel.GetProblemsAsync(platformName);
+    }
+
+    public byte[] GetProblemData(long problemId) {
+      return base.Channel.GetProblemData(problemId);
+    }
+
+    public System.Threading.Tasks.Task<byte[]> GetProblemDataAsync(long problemId) {
+      return base.Channel.GetProblemDataAsync(problemId);
+    }
+
+    public void AddRun(HeuristicLab.Clients.OKB.RunCreation.Run run) {
+      base.Channel.AddRun(run);
+    }
+
+    public System.Threading.Tasks.Task AddRunAsync(HeuristicLab.Clients.OKB.RunCreation.Run run) {
+      return base.Channel.AddRunAsync(run);
+    }
+
+    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> GetCharacteristicValues(long problemId) {
+      return base.Channel.GetCharacteristicValues(problemId);
+    }
+
+    public System.Threading.Tasks.Task<System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value>> GetCharacteristicValuesAsync(long problemId) {
+      return base.Channel.GetCharacteristicValuesAsync(problemId);
+    }
+
+    public void SetCharacteristicValue(long problemId, HeuristicLab.Clients.OKB.RunCreation.Value value) {
+      base.Channel.SetCharacteristicValue(problemId, value);
+    }
+
+    public System.Threading.Tasks.Task SetCharacteristicValueAsync(long problemId, HeuristicLab.Clients.OKB.RunCreation.Value value) {
+      return base.Channel.SetCharacteristicValueAsync(problemId, value);
+    }
+
+    public void SetCharacteristicValues(long problemId, System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> values) {
+      base.Channel.SetCharacteristicValues(problemId, values);
+    }
+
+    public System.Threading.Tasks.Task SetCharacteristicValuesAsync(long problemId, System.Collections.Generic.List<HeuristicLab.Clients.OKB.RunCreation.Value> values) {
+      return base.Channel.SetCharacteristicValuesAsync(problemId, values);
+    }
+  }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/StringValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/StringValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/StringValue.cs	(revision 13534)
@@ -20,4 +20,5 @@
 #endregion
 
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class StringValue {
@@ -28,4 +29,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value;
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/TimeSpanValue.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/TimeSpanValue.cs	(revision 13529)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/TimeSpanValue.cs	(revision 13534)
@@ -20,4 +20,6 @@
 #endregion
 
+using System.Globalization;
+
 namespace HeuristicLab.Clients.OKB.RunCreation {
   public partial class TimeSpanValue {
@@ -28,4 +30,8 @@
       };
     }
+
+    public override string ToString() {
+      return Value.ToString(CultureInfo.CurrentCulture.DateTimeFormat);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/Value.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/Value.cs	(revision 13534)
+++ trunk/sources/HeuristicLab.Clients.OKB/3.3/RunCreation/ServiceClient/Value.cs	(revision 13534)
@@ -0,0 +1,66 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Globalization;
+using System.Text.RegularExpressions;
+
+namespace HeuristicLab.Clients.OKB.RunCreation {
+  public partial class Value {
+    public static Value Create(string name, string strValue, string type) {
+      switch (type) {
+        case "BoolValue": return new BoolValue() {
+          Name = name,
+          Value = bool.Parse(strValue)
+        }; break;
+        case "IntValue": return new IntValue() {
+          Name = name,
+          Value = int.Parse(strValue, CultureInfo.CurrentCulture.NumberFormat)
+        }; break;
+        case "LongValue": return new LongValue() {
+          Name = name,
+          Value = long.Parse(strValue, CultureInfo.CurrentCulture.NumberFormat)
+        }; break;
+        case "FloatValue": return new FloatValue() {
+          Name = name,
+          Value = float.Parse(strValue, CultureInfo.CurrentCulture.NumberFormat)
+        }; break;
+        case "DoubleValue": return new DoubleValue() {
+          Name = name,
+          Value = double.Parse(strValue, CultureInfo.CurrentCulture.NumberFormat)
+        }; break;
+        case "PercentValue": return new PercentValue() {
+          Name = name,
+          Value = double.Parse(Regex.Match(strValue, "[0-9.,]+").Value, CultureInfo.CurrentCulture.NumberFormat) / 100.0
+        }; break;
+        case "StringValue": return new StringValue() {
+          Name = name,
+          Value = strValue
+        }; break;
+        case "TimeSpanValue": return new TimeSpanValue() {
+          Name = name,
+          Value = long.Parse(strValue, CultureInfo.CurrentCulture.NumberFormat)
+        }; break;
+        default: throw new ArgumentException(string.Format("type {0} is unknown", type), "type");
+      }
+    }
+  }
+}
