Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.Publish.xml
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.Publish.xml	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.Publish.xml	(revision 6779)
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
 <publishData>
-  <publishProfile publishUrl="services.heuristiclab.com" deleteExistingFiles="False" ftpAnonymousLogin="False" ftpPassiveMode="True" msdeploySite="services.heuristiclab.com/ProblemInstances-3.3" msdeploySiteID="" msdeployRemoteSitePhysicalPath="" msdeployAllowUntrustedCertificate="True" msdeploySkipExtraFilesOnServer="True" msdeployMarkAsApp="False" profileName="Publish to services.heuristiclab.com" publishMethod="MSDeploy" replaceMatchingFiles="True" userName="" savePWD="False" userPWD="" SelectedForPublish="True" />
+  <publishProfile publishUrl="services.heuristiclab.com" deleteExistingFiles="False" ftpAnonymousLogin="False" ftpPassiveMode="True" msdeploySite="services.heuristiclab.com/ProblemInstances-3.3" msdeploySiteID="" msdeployRemoteSitePhysicalPath="" msdeployAllowUntrustedCertificate="True" msdeploySkipExtraFilesOnServer="True" msdeployMarkAsApp="False" profileName="Publish to SERVICES" publishMethod="MSDeploy" replaceMatchingFiles="True" userName="" savePWD="False" userPWD="" SelectedForPublish="True" />
 </publishData>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj	(revision 6779)
@@ -138,4 +138,12 @@
     </VisualStudio>
   </ProjectExtensions>
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
+  </PropertyGroup>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
Index: anches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializer.cs	(revision 6778)
+++ 	(revision )
@@ -1,118 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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;
-
-namespace HeuristicLab.Services.ProblemInstances {
-  public static class PrimitiveSerializer {
-    public static string SerializeDoubleMatrix(double[][] matrix) {
-      StringBuilder builder = new StringBuilder();
-      int dim1 = matrix.Length;
-      int dim2 = matrix[0].Length;
-      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
-      builder.Append(";");
-      builder.Append(dim2.ToString(CultureInfo.InvariantCulture.NumberFormat));
-      for (int i = 0; i < dim1; i++) {
-        for (int j = 0; j < dim2; j++) {
-          if (matrix[i].Length != dim2) throw new ArgumentException("ERROR jagged array is not a matrix!");
-          builder.Append(";" + matrix[i][j].ToString(CultureInfo.InvariantCulture.NumberFormat));
-        }
-      }
-      return builder.ToString();
-    }
-
-    public static double[][] DeserializeDoubleMatrix(string data) {
-      string[] tokens = data.Split(';');
-      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
-      int dim2 = int.Parse(tokens[1], CultureInfo.InvariantCulture.NumberFormat);
-      if (tokens.Length != (dim1 * dim2) + 2) throw new ArgumentException("ERROR serialized data does not represent a matrix!");
-      double[][] result = new double[dim1][];
-      for (int i = 0; i < dim1; i++) {
-        result[i] = new double[dim2];
-        for (int j = 0; j < dim2; j++)
-          result[i][j] = double.Parse(tokens[i * dim1 + j + 2], CultureInfo.InvariantCulture.NumberFormat);
-      }
-      return result;
-    }
-
-    public static string SerializeMatrixWithHeaders(double[][] matrix, string[] headers) {
-      StringBuilder builder = new StringBuilder();
-      int dim1 = matrix.Length;
-      if (headers.Length != dim1) throw new ArgumentException("ERROR: headers and matrix size do not correspond");
-      int dim2 = matrix[0].Length;
-      if (dim2 != dim1) throw new ArgumentException("ERROR: square matrix expected");
-      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
-      builder.Append(";");
-      builder.Append(dim2.ToString(CultureInfo.InvariantCulture.NumberFormat));
-      for (int i = 0; i < headers.Length; i++) {
-        builder.Append(";" + headers[i]);
-      }
-      for (int i = 0; i < dim1; i++) {
-        for (int j = 0; j < dim2; j++) {
-          if (matrix[i].Length != dim2) throw new ArgumentException("ERROR jagged array is not a matrix!");
-          builder.Append(";" + matrix[i][j].ToString(CultureInfo.InvariantCulture.NumberFormat));
-        }
-      }
-      return builder.ToString();
-    }
-
-    public static double[][] DeserializeMatrixWithHeaders(string data, out string[] headers) {
-      string[] tokens = data.Split(';');
-      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
-      int dim2 = int.Parse(tokens[1], CultureInfo.InvariantCulture.NumberFormat);
-      if (dim1 != dim2) throw new ArgumentException("ERROR: square matrix expected");
-      headers = new string[dim1];
-      if (tokens.Length != (dim1 * dim2) + 2 + dim1) throw new ArgumentException("ERROR serialized data does not represent a matrix!");
-      for (int i = 0; i < dim1; i++)
-        headers[i] = tokens[i + 2];
-      double[][] result = new double[dim1][];
-      for (int i = 0; i < dim1; i++) {
-        result[i] = new double[dim2];
-        for (int j = 0; j < dim2; j++)
-          result[i][j] = double.Parse(tokens[(i + 1) * dim1 + j + 2], CultureInfo.InvariantCulture.NumberFormat);
-      }
-      return result;
-    }
-
-    public static string SerializeIntArray(int[] array) {
-      StringBuilder builder = new StringBuilder();
-      int dim1 = array.Length;
-      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
-      builder.Append(";");
-      for (int i = 0; i < dim1; i++) {
-        builder.Append(";" + array[i].ToString(CultureInfo.InvariantCulture.NumberFormat));
-      }
-      return builder.ToString();
-    }
-
-    public static int[] DeserializeIntArray(string array) {
-      string[] tokens = array.Split(';');
-      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
-      int[] result = new int[dim1];
-      for (int i = 0; i < dim1; i++) {
-        result[i] = int.Parse(tokens[i + 1], CultureInfo.InvariantCulture.NumberFormat);
-      }
-      return result;
-    }
-  }
-}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs	(revision 6779)
@@ -405,14 +405,10 @@
         /// <param name="id">Initial value of the Id property.</param>
         /// <param name="name">Initial value of the Name property.</param>
-        /// <param name="assignment">Initial value of the Assignment property.</param>
-        /// <param name="assignmentHash">Initial value of the AssignmentHash property.</param>
         /// <param name="quality">Initial value of the Quality property.</param>
-        public static QAPSolution CreateQAPSolution(global::System.Int32 id, global::System.String name, global::System.String assignment, global::System.String assignmentHash, global::System.Double quality)
+        public static QAPSolution CreateQAPSolution(global::System.Int32 id, global::System.String name, global::System.Double quality)
         {
             QAPSolution qAPSolution = new QAPSolution();
             qAPSolution.Id = id;
             qAPSolution.Name = name;
-            qAPSolution.Assignment = assignment;
-            qAPSolution.AssignmentHash = assignmentHash;
             qAPSolution.Quality = quality;
             return qAPSolution;
@@ -476,5 +472,5 @@
         /// No Metadata Documentation available.
         /// </summary>
-        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
         [DataMemberAttribute()]
         public global::System.String Assignment
@@ -488,5 +484,5 @@
                 OnAssignmentChanging(value);
                 ReportPropertyChanging("Assignment");
-                _Assignment = StructuralObject.SetValidValue(value, false);
+                _Assignment = StructuralObject.SetValidValue(value, true);
                 ReportPropertyChanged("Assignment");
                 OnAssignmentChanged();
@@ -500,5 +496,5 @@
         /// No Metadata Documentation available.
         /// </summary>
-        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
         [DataMemberAttribute()]
         public global::System.String AssignmentHash
@@ -512,5 +508,5 @@
                 OnAssignmentHashChanging(value);
                 ReportPropertyChanging("AssignmentHash");
-                _AssignmentHash = StructuralObject.SetValidValue(value, false);
+                _AssignmentHash = StructuralObject.SetValidValue(value, true);
                 ReportPropertyChanged("AssignmentHash");
                 OnAssignmentHashChanged();
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx	(revision 6779)
@@ -83,6 +83,6 @@
           <Property Type="Int32" Name="Id" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
           <Property Type="String" Name="Name" Nullable="false" MaxLength="64" FixedLength="false" Unicode="true" />
-          <Property Type="String" Name="Assignment" Nullable="false" MaxLength="Max" FixedLength="false" Unicode="false" />
-          <Property Type="String" Name="AssignmentHash" Nullable="false" MaxLength="40" FixedLength="true" Unicode="false" />
+          <Property Type="String" Name="Assignment" Nullable="true" MaxLength="Max" FixedLength="false" Unicode="false" />
+          <Property Type="String" Name="AssignmentHash" Nullable="true" MaxLength="40" FixedLength="true" Unicode="false" />
           <Property Type="Double" Name="Quality" Nullable="false" />
           <NavigationProperty Name="Instance" Relationship="ProblemInstancesModel.FK_QAPSolution_QAPInstance1" FromRole="QAPSolution" ToRole="QAPInstance" />
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/SimpleSerializer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/SimpleSerializer.cs	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/SimpleSerializer.cs	(revision 6779)
@@ -131,5 +131,5 @@
 
     public static double[] DeserializeDoubleArray(string array) {
-      string[] tokens = array.Split(';');
+      string[] tokens = array.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
       int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
       double[] result = new double[dim1];
@@ -154,5 +154,5 @@
 
     public static int[] DeserializeIntArray(string array) {
-      string[] tokens = array.Split(';');
+      string[] tokens = array.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
       int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
       int[] result = new int[dim1];
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config	(revision 6779)
@@ -4,6 +4,4 @@
 
 <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
-  <connectionStrings xdt:Transform="Insert">
-    <add name="ProblemInstancesEntities" connectionString="metadata=res://*/ProblemInstancesModel.csdl|res://*/ProblemInstancesModel.ssdl|res://*/ProblemInstancesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=LOCALHOST\SQLEXPRESS;Initial Catalog=HeuristicLab.ProblemInstances;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
-  </connectionStrings>
+  
 </configuration>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config	(revision 6779)
@@ -9,5 +9,5 @@
   </system.web>
 
-  <connectionStrings xdt:Transform="Insert">
+  <connectionStrings xdt:Transform="Replace">
     <add name="ProblemInstancesEntities" connectionString="metadata=res://*/ProblemInstancesModel.csdl|res://*/ProblemInstancesModel.ssdl|res://*/ProblemInstancesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=LOCALHOST;Initial Catalog=HeuristicLab.ProblemInstances;Integrated Security=True&quot;" providerName="System.Data.EntityClient" />
   </connectionStrings>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config	(revision 6778)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config	(revision 6779)
@@ -1,7 +1,10 @@
-﻿<?xml version="1.0"?>
+﻿<?xml version="1.0" encoding="utf-8"?>
 <configuration>
-
   <system.web>
-    <compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies></compilation>
+    <compilation debug="true" targetFramework="4.0">
+      <assemblies>
+        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+      </assemblies>
+    </compilation>
   </system.web>
   <system.serviceModel>
@@ -9,5 +12,5 @@
       <serviceBehaviors>
         <behavior>
-          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
+          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
           <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
           <serviceMetadata httpGetEnabled="true" />
@@ -19,7 +22,9 @@
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
   </system.serviceModel>
- <system.webServer>
+  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true" />
   </system.webServer>
-  
+  <connectionStrings>
+    <add name="ProblemInstancesEntities" connectionString="metadata=res://*/ProblemInstancesModel.csdl|res://*/ProblemInstancesModel.ssdl|res://*/ProblemInstancesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=LOCALHOST\SQLEXPRESS;Initial Catalog=HeuristicLab.ProblemInstances;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
+  </connectionStrings>
 </configuration>
