diff --git a/DataAccessTier/App.config b/DataAccessTier/App.config
index 7e8f38006aec10e7f35fe2b45b4e3ddc316ddce7..ce2fb3979398857f651f7269bb031ddf0fcae31b 100644
--- a/DataAccessTier/App.config
+++ b/DataAccessTier/App.config
@@ -1,52 +1,50 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <configuration>
-	<configSections>
+  <configSections>
 
-		<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
-		
-		<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-			<section name="HaaSMiddleware.DataAccessTier.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
-			<section name="DataAccessLayer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
-		</sectionGroup>
-	<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
-	<entityFramework>
-		<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
-		<providers>
-			<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
-		</providers>
-	</entityFramework>
+    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+
+    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+      <section name="HaaSMiddleware.DataAccessTier.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+      <section name="DataAccessLayer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+    </sectionGroup>
+    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
+      <section name="HaaSMiddleware.DataAccessTier.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+    </sectionGroup>
+  </configSections>
+  <entityFramework>
+    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
+    <providers>
+      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
+    </providers>
+  </entityFramework>
   <connectionStrings>
     <add name="HaaSMiddleware.DataAccessTier.Properties.Settings.MiddlewareContext"
-      connectionString="Data Source=DELLG5;Database=HaaS_Middleware;integrated security=True;"
+      connectionString="Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;"
       providerName="System.Data.SqlClient" />
   </connectionStrings>
-  <!--connectionString="Server=HAAS\SQLEXPRESS;Database=HaaS_Middleware_fiji;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Server=SVA162-NB\SQLEXPRESS;Database=HaaS_Middleware;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Server=HAAS\SQLEXPRESS;Database=HaaS_Middleware_Papcel;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Server=UTEPSTORAGE\SQLEXPRESS;Database=HaaS_Middleware;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Server=UTEPSTORAGE\SQLEXPRESS;Database=HaaS_Middleware_fiji;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Server=floreonwia.vsb.cz;Database=HaaS_Middleware;User Id=s_floreon;Password=Martinovicuv2Mazlik2015;"-->
-  <!--connectionString="Data Source=localhost;Initial Catalog=HaaS_Middleware;Trusted_Connection=SSPI"-->
-  <!--connectionString="Server=FLOREONWIA\SQLEXPRESS;Database=HaaS_Middleware;User Id=s_floreon;Password=Martinovicuv2Mazlik2015;"-->
-  <!--connectionString="Server=DHIRELEASE\SQLEXPRESSDHI;Database=HaaS_Middleware;User Id=haasuser;Password=haaspass;"-->
-  <!--connectionString="Data Source=195.113.250.27;Initial Catalog=HaaS_Middleware;Trusted_Connection=yes"-->
-	<!--Production: Data Source=localhost;Initial Catalog=HaaS_Middleware;Trusted_Connection=yes-->
-	<!--Development: Data Source=floreon2.cs.vsb.cz;Initial Catalog=HaaS_Middleware;User ID=s_floreon;Password=Martinovicuv2Mazlik2015;MultipleActiveResultSets=True-->
-	<!--Entity Framework Migrations: Data Source=195.113.250.18;Initial Catalog=HaaS_Middleware;Trusted_Connection=yes-->
-	<startup>
-		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
-	</startup>
-	<applicationSettings>
-		<HaaSMiddleware.DataAccessTier.Properties.Settings>
-   <setting name="DatabaseRepositoryType" serializeAs="String">
-    <value>LinqToEntities</value>
-   </setting>
-  </HaaSMiddleware.DataAccessTier.Properties.Settings>
-		<DataAccessLayer.Properties.Settings>
-			<setting name="RepositoryType" serializeAs="String">
-				<value>LinqToEntities</value>
-			</setting>
-		</DataAccessLayer.Properties.Settings>
-	</applicationSettings>
+  <startup>
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
+  </startup>
+  <applicationSettings>
+    <HaaSMiddleware.DataAccessTier.Properties.Settings>
+      <setting name="DatabaseRepositoryType" serializeAs="String">
+        <value>LinqToEntities</value>
+      </setting>
+    </HaaSMiddleware.DataAccessTier.Properties.Settings>
+    <DataAccessLayer.Properties.Settings>
+      <setting name="RepositoryType" serializeAs="String">
+        <value>LinqToEntities</value>
+      </setting>
+    </DataAccessLayer.Properties.Settings>
+  </applicationSettings>
+  <userSettings>
+    <HaaSMiddleware.DataAccessTier.Properties.Settings>
+      <setting name="CustomMiddlewareContext" serializeAs="String">
+        <value>Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</value>
+      </setting>
+    </HaaSMiddleware.DataAccessTier.Properties.Settings>
+  </userSettings>
 </configuration>
\ No newline at end of file
diff --git a/DataAccessTier/DataAccessTier.csproj b/DataAccessTier/DataAccessTier.csproj
index 5a176eb7a3972fd3c2a0a8ca232b082ac78058eb..826c769443bf66ebe39c4577dbaa0251d8d415b0 100644
--- a/DataAccessTier/DataAccessTier.csproj
+++ b/DataAccessTier/DataAccessTier.csproj
@@ -50,6 +50,7 @@
     <Reference Include="System.ComponentModel.DataAnnotations" />
     <Reference Include="System.configuration" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
     <Reference Include="System.Xml.Linq" />
   </ItemGroup>
   <ItemGroup>
@@ -59,11 +60,8 @@
     <Compile Include="Factory\UnitOfWork\UnitOfWorkFactory.cs" />
     <Compile Include="Factory\UnitOfWork\DatabaseUnitOfWorkFactory.cs" />
     <Compile Include="Factory\UnitOfWork\UnitOfWorkType.cs" />
-    <Compile Include="Migrations\201711011130556_InitialCreate.cs" />
-    <Compile Include="Migrations\201711011130556_InitialCreate.Designer.cs">
-      <DependentUpon>201711011130556_InitialCreate.cs</DependentUpon>
-    </Compile>
     <Compile Include="Migrations\Configuration.cs" />
+    <Compile Include="Migrations\CreateIfNotExistOrMigrateDatabaseInitializer.cs" />
     <Compile Include="Properties\Settings.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
@@ -125,11 +123,6 @@
       <Name>DomainObjects</Name>
     </ProjectReference>
   </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Migrations\201711011130556_InitialCreate.resx">
-      <DependentUpon>201711011130556_InitialCreate.cs</DependentUpon>
-    </EmbeddedResource>
-  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- 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.
diff --git a/DataAccessTier/MiddlewareContext.cs b/DataAccessTier/MiddlewareContext.cs
index 8c6f6c137cc86f3bdeb54247511c981f909830eb..25c394d649b487fbeed8a9b2c99980e45c2dbff8 100644
--- a/DataAccessTier/MiddlewareContext.cs
+++ b/DataAccessTier/MiddlewareContext.cs
@@ -1,6 +1,10 @@
 
+using System;
+using System.Data.Common;
 using System.Data.Entity;
+using System.Data.Entity.Core.EntityClient;
 using System.Data.Entity.Migrations;
+using System.Data.SqlClient;
 using HaaSMiddleware.DataAccessTier.Migrations;
 using HaaSMiddleware.DomainObjects.AdminUserManagement;
 using HaaSMiddleware.DomainObjects.ClusterInformation;
@@ -10,80 +14,86 @@ using HaaSMiddleware.DomainObjects.JobManagement.JobInformation;
 using HaaSMiddleware.DomainObjects.Notifications;
 using HaaSMiddleware.DomainObjects.UserAndLimitationManagement;
 
-namespace HaaSMiddleware.DataAccessTier {
+namespace HaaSMiddleware.DataAccessTier
+{
+
+    internal class MiddlewareContext : DbContext
+    {
+        public MiddlewareContext() : base(Properties.Settings.Default.CustomMiddlewareContext)
+        {
+            //"name=MiddlewareContext") {
 
-    internal class MiddlewareContext : DbContext {
-		public MiddlewareContext()
-			: base(DataAccessTier.Properties.Settings.Default.MiddlewareContext) { //"name=MiddlewareContext") {
             //Database.SetInitializer(new CreateDatabaseIfNotExists<MiddlewareContext>());
-            Database.SetInitializer(new MigrateDatabaseToLatestVersion<MiddlewareContext, Configuration>());
+            //Database.SetInitializer(new MigrateDatabaseToLatestVersion<MiddlewareContext, Configuration>());
+            Database.SetInitializer(new CreateIfNotExistOrMigrateDatabaseInitializer<MiddlewareContext, Configuration>());
         }
 
-		protected override void OnModelCreating(DbModelBuilder modelBuilder) {
-			base.OnModelCreating(modelBuilder);
+        protected override void OnModelCreating(DbModelBuilder modelBuilder)
+        {
+            base.OnModelCreating(modelBuilder);
 
-            string dbNamespace = System.Configuration.ConfigurationManager.AppSettings.Get("dbNamespace");
+            //string dbNamespace = System.Configuration.ConfigurationManager.AppSettings.Get("dbNamespace");
+            //modelBuilder.HasDefaultSchema(dbNamespace);
 
-            modelBuilder.HasDefaultSchema(dbNamespace);
 
-			// Set default schema
-			//modelBuilder.HasDefaultSchema("HaaS_Middleware");
+            // Set default schema
+            //modelBuilder.HasDefaultSchema("HaaS_Middleware");
             //modelBuilder.HasDefaultSchema("HaaS_Middleware_Test");
             //modelBuilder.HasDefaultSchema("HaaS_Middleware_fiji");
             //modelBuilder.HasDefaultSchema("HaaS_Middleware_DHI");
             //modelBuilder.HasDefaultSchema("HaaS_Middleware_Papcel");
 
-			// Separate JobTemplate and JobDescription
-			// into different tables
-			modelBuilder.Entity<JobSpecification>().ToTable("JobSpecification");
-			modelBuilder.Entity<JobTemplate>().ToTable("JobTemplate");
-		}
-
-		#region AdminUserManagement Entities
-		public virtual DbSet<AdministrationRole> AdministrationRoles { get; set; }
-		public virtual DbSet<AdministrationUser> AdministrationUsers { get; set; }
-		#endregion
-
-		#region ClusterInformation Entities
-		public virtual DbSet<Cluster> Clusters { get; set; }
-		public virtual DbSet<ClusterAuthenticationCredentials> ClusterAuthenticationCredentials { get; set; }
-		public virtual DbSet<ClusterNodeType> ClusterNodeTypes { get; set; }
-		#endregion
-
-		#region FileTransfer Entities
-		public virtual DbSet<FileSpecification> FileSpecifications { get; set; }
-		public virtual DbSet<FileTransferMethod> FileTransferMethods { get; set; }
-		#endregion
-
-		#region JobManagement.JobInformation Entities
-		public virtual DbSet<SubmittedJobInfo> SubmittedJobInfos { get; set; }
-		public virtual DbSet<SubmittedTaskInfo> SubmittedTaskInfos { get; set; }
-		#endregion
-
-		#region JobManagement Entities
-		public virtual DbSet<CommandTemplate> CommandTemplates { get; set; }
-		public virtual DbSet<CommandTemplateParameter> CommandTemplateParameters { get; set; }
-		public virtual DbSet<CommandTemplateParameterValue> CommandTemplateParameterValues { get; set; }
-		public virtual DbSet<EnvironmentVariable> EnvironmentVariables { get; set; }
-		public virtual DbSet<JobSpecification> JobSpecifications { get; set; }
-		public virtual DbSet<JobTemplate> JobTemplates { get; set; }
-		public virtual DbSet<PropertyChangeSpecification> PropertyChangeSpecifications { get; set; }
-		public virtual DbSet<TaskSpecification> TaskSpecifications { get; set; }
-		#endregion
-
-		#region Notifications Entities
-		public virtual DbSet<Language> Languages { get; set; }
-		public virtual DbSet<MessageLocalization> MessageLocalizations { get; set; }
-		public virtual DbSet<MessageTemplate> MessageTemplates { get; set; }
-		public virtual DbSet<MessageTemplateParameter> MessageTemplateParameters { get; set; }
-		public virtual DbSet<Notification> Notifications { get; set; }
-		#endregion
-
-		#region UserAndLimitationManagement Entities
-		public virtual DbSet<AdaptorUser> AdaptorUsers { get; set; }
-		public virtual DbSet<AdaptorUserGroup> AdaptorUserGroups { get; set; }
-		public virtual DbSet<ResourceLimitation> ResourceLimitations { get; set; }
-		public virtual DbSet<SessionCode> SessionCodes { get; set; }
-		#endregion
-	}
+            // Separate JobTemplate and JobDescription
+            // into different tables
+            modelBuilder.Entity<JobSpecification>().ToTable("JobSpecification");
+            modelBuilder.Entity<JobTemplate>().ToTable("JobTemplate");
+        }
+
+        #region AdminUserManagement Entities
+        public virtual DbSet<AdministrationRole> AdministrationRoles { get; set; }
+        public virtual DbSet<AdministrationUser> AdministrationUsers { get; set; }
+        #endregion
+
+        #region ClusterInformation Entities
+        public virtual DbSet<Cluster> Clusters { get; set; }
+        public virtual DbSet<ClusterAuthenticationCredentials> ClusterAuthenticationCredentials { get; set; }
+        public virtual DbSet<ClusterNodeType> ClusterNodeTypes { get; set; }
+        #endregion
+
+        #region FileTransfer Entities
+        public virtual DbSet<FileSpecification> FileSpecifications { get; set; }
+        public virtual DbSet<FileTransferMethod> FileTransferMethods { get; set; }
+        #endregion
+
+        #region JobManagement.JobInformation Entities
+        public virtual DbSet<SubmittedJobInfo> SubmittedJobInfos { get; set; }
+        public virtual DbSet<SubmittedTaskInfo> SubmittedTaskInfos { get; set; }
+        #endregion
+
+        #region JobManagement Entities
+        public virtual DbSet<CommandTemplate> CommandTemplates { get; set; }
+        public virtual DbSet<CommandTemplateParameter> CommandTemplateParameters { get; set; }
+        public virtual DbSet<CommandTemplateParameterValue> CommandTemplateParameterValues { get; set; }
+        public virtual DbSet<EnvironmentVariable> EnvironmentVariables { get; set; }
+        public virtual DbSet<JobSpecification> JobSpecifications { get; set; }
+        public virtual DbSet<JobTemplate> JobTemplates { get; set; }
+        public virtual DbSet<PropertyChangeSpecification> PropertyChangeSpecifications { get; set; }
+        public virtual DbSet<TaskSpecification> TaskSpecifications { get; set; }
+        #endregion
+
+        #region Notifications Entities
+        public virtual DbSet<Language> Languages { get; set; }
+        public virtual DbSet<MessageLocalization> MessageLocalizations { get; set; }
+        public virtual DbSet<MessageTemplate> MessageTemplates { get; set; }
+        public virtual DbSet<MessageTemplateParameter> MessageTemplateParameters { get; set; }
+        public virtual DbSet<Notification> Notifications { get; set; }
+        #endregion
+
+        #region UserAndLimitationManagement Entities
+        public virtual DbSet<AdaptorUser> AdaptorUsers { get; set; }
+        public virtual DbSet<AdaptorUserGroup> AdaptorUserGroups { get; set; }
+        public virtual DbSet<ResourceLimitation> ResourceLimitations { get; set; }
+        public virtual DbSet<SessionCode> SessionCodes { get; set; }
+        #endregion
+    }
 }
\ No newline at end of file
diff --git a/DataAccessTier/Migrations/Configuration.cs b/DataAccessTier/Migrations/Configuration.cs
index 5b4a83fce8334c36590e35f0a45e38f3eeb4fa81..1c31b3103029c5d5056097fa71ae303a27d2b506 100644
--- a/DataAccessTier/Migrations/Configuration.cs
+++ b/DataAccessTier/Migrations/Configuration.cs
@@ -12,7 +12,7 @@ namespace HaaSMiddleware.DataAccessTier.Migrations
         public Configuration()
         {
             AutomaticMigrationsEnabled = true;
-            AutomaticMigrationDataLossAllowed = true;
+            AutomaticMigrationDataLossAllowed = true;   
         }
 
         protected override void Seed(HaaSMiddleware.DataAccessTier.MiddlewareContext context)
diff --git a/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs b/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..37ed0804b4b7e15ff1c104d550b7803fe25a1c8f
--- /dev/null
+++ b/DataAccessTier/Migrations/CreateIfNotExistOrMigrateDatabaseInitializer.cs
@@ -0,0 +1,34 @@
+using System.Data.Entity;
+using System.Data.Entity.Migrations;
+
+namespace HaaSMiddleware.DataAccessTier.Migrations
+{
+    internal class CreateIfNotExistOrMigrateDatabaseInitializer<TContext, TConfiguration> : CreateDatabaseIfNotExists<TContext>, IDatabaseInitializer<TContext>
+        where TContext : DbContext
+        where TConfiguration : DbMigrationsConfiguration<TContext>, new()
+    {
+        private readonly DbMigrationsConfiguration _migrationConfiguration;
+        internal CreateIfNotExistOrMigrateDatabaseInitializer()
+        {
+            _migrationConfiguration = new TConfiguration();
+        }
+
+        void IDatabaseInitializer<TContext>.InitializeDatabase(TContext context)
+        {
+            bool createDatabase = !context.Database.Exists();
+
+            var migrator = new DbMigrator(_migrationConfiguration);
+
+            //if (migrator.GetPendingMigrations().Any())
+            migrator.Update();
+            
+            base.InitializeDatabase(context);
+
+            if (createDatabase)
+            {
+                Seed(context);
+                context.SaveChanges();
+            }
+        }
+    }
+}
diff --git a/DataAccessTier/Migrations/201711011130556_InitialCreate.Designer.cs b/DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.Designer.cs
similarity index 100%
rename from DataAccessTier/Migrations/201711011130556_InitialCreate.Designer.cs
rename to DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.Designer.cs
diff --git a/DataAccessTier/Migrations/201711011130556_InitialCreate.cs b/DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.cs
similarity index 100%
rename from DataAccessTier/Migrations/201711011130556_InitialCreate.cs
rename to DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.cs
diff --git a/DataAccessTier/Migrations/201711011130556_InitialCreate.resx b/DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.resx
similarity index 100%
rename from DataAccessTier/Migrations/201711011130556_InitialCreate.resx
rename to DataAccessTier/Migrations/initial_create_migration/201711011130556_InitialCreate.resx
diff --git a/DataAccessTier/Properties/Settings.Designer.cs b/DataAccessTier/Properties/Settings.Designer.cs
index 136b2a5ce46c22d14e1644c287d47c530515bd53..47469f25e5edab84dbde2e047351591f152c1bb4 100644
--- a/DataAccessTier/Properties/Settings.Designer.cs
+++ b/DataAccessTier/Properties/Settings.Designer.cs
@@ -35,11 +35,23 @@ namespace HaaSMiddleware.DataAccessTier.Properties {
         [global::System.Configuration.ApplicationScopedSettingAttribute()]
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
         [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
-        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=DELLG5;Database=HaaS_Middleware;integrated security=True;")]
+        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;")]
         public string MiddlewareContext {
             get {
                 return ((string)(this["MiddlewareContext"]));
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;")]
+        public string CustomMiddlewareContext {
+            get {
+                return ((string)(this["CustomMiddlewareContext"]));
+            }
+            set {
+                this["CustomMiddlewareContext"] = value;
+            }
+        }
     }
 }
diff --git a/DataAccessTier/Properties/Settings.settings b/DataAccessTier/Properties/Settings.settings
index c6c9c22c3c4cf8b81e90e72f859662f1b152f48e..fcc42ca799d760dda0ac4f21860422963efed1b5 100644
--- a/DataAccessTier/Properties/Settings.settings
+++ b/DataAccessTier/Properties/Settings.settings
@@ -8,10 +8,13 @@
     <Setting Name="MiddlewareContext" Type="(Connection string)" Scope="Application">
       <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
 &lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
-  &lt;ConnectionString&gt;Data Source=DELLG5;Database=HaaS_Middleware;integrated security=True;&lt;/ConnectionString&gt;
+  &lt;ConnectionString&gt;Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;&lt;/ConnectionString&gt;
   &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
 &lt;/SerializableConnectionString&gt;</DesignTimeValue>
-      <Value Profile="(Default)">Data Source=DELLG5;Database=HaaS_Middleware;integrated security=True;</Value>
+      <Value Profile="(Default)">Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</Value>
+    </Setting>
+    <Setting Name="CustomMiddlewareContext" Type="System.String" Scope="User">
+      <Value Profile="(Default)">Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;</Value>
     </Setting>
   </Settings>
 </SettingsFile>
\ No newline at end of file
diff --git a/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs b/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs
index 423e830b0a77db7ce840b5483bec82b5d51c44fb..dee8357414f612afc368cf46297ef07d877ed2b6 100644
--- a/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs
+++ b/DataAccessTier/UnitOfWork/DatabaseUnitOfWork.cs
@@ -19,8 +19,17 @@ namespace HaaSMiddleware.DataAccessTier.UnitOfWork {
 				this.repositoryType = RepositoryType.LinqToEntities;
 		}
 
-		#region Repositories
-		private IAdaptorUserGroupRepository adaptorUserGroupRepository;
+        public DatabaseUnitOfWork(string connString)
+        {
+            Properties.Settings.Default.CustomMiddlewareContext = connString;
+            //Properties.Settings.Default.Save();
+            this.context = new MiddlewareContext();
+            if (!Enum.TryParse(ConfigurationManager.AppSettings["DatabaseRepositoryType"], out this.repositoryType))
+                this.repositoryType = RepositoryType.LinqToEntities;
+        }
+
+        #region Repositories
+        private IAdaptorUserGroupRepository adaptorUserGroupRepository;
 		private IAdaptorUserRepository adaptorUserRepository;
 		private IAdministrationRoleRepository administrationRoleRepository;
 		private IAdministrationUserRepository administrationUserRepository;
diff --git a/DomainObjects/Notifications/Language.cs b/DomainObjects/Notifications/Language.cs
index 90345a965b3d7674e5ac5e73ca18f959a8fd38c9..e37ce0c0a047df1c92bee4e03e777961166c07e2 100644
--- a/DomainObjects/Notifications/Language.cs
+++ b/DomainObjects/Notifications/Language.cs
@@ -11,8 +11,5 @@ namespace HaaSMiddleware.DomainObjects.Notifications {
 		[Required]
 		[StringLength(50)]
 		public string Name { get; set; }
-
-        //[StringLength(10)]
-        //public string TestColumn { get; set; }
     }
 }
\ No newline at end of file
diff --git a/HpcAsAServiceMiddleware.sln b/HpcAsAServiceMiddleware.sln
index 82229bf447cc45ef62dc92469280849c0e2cdc83..d2f0e2b68e536ca38c0f7c11aad2a3c8176e389f 100644
--- a/HpcAsAServiceMiddleware.sln
+++ b/HpcAsAServiceMiddleware.sln
@@ -35,6 +35,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebServices", "WebServices\
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WsClient", "WsClient\WsClient.csproj", "{542A281B-8D70-45A1-9556-81B4B38B04FA}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiddlewareTests", "MiddlewareTests\MiddlewareTests.csproj", "{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		CD_ROM|Any CPU = CD_ROM|Any CPU
@@ -461,6 +463,36 @@ Global
 		{542A281B-8D70-45A1-9556-81B4B38B04FA}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{542A281B-8D70-45A1-9556-81B4B38B04FA}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
 		{542A281B-8D70-45A1-9556-81B4B38B04FA}.SingleImage|x86.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|x86.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.CD_ROM|x86.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Debug|x86.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|x86.ActiveCfg = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.DVD-5|x86.Build.0 = Debug|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|x86.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.Release|x86.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|Any CPU.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|x86.ActiveCfg = Release|Any CPU
+		{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}.SingleImage|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/MiddlewareTests/App.config b/MiddlewareTests/App.config
new file mode 100644
index 0000000000000000000000000000000000000000..4c0088870d188c5060b39fc0028a4260c344ff4f
--- /dev/null
+++ b/MiddlewareTests/App.config
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <configSections>
+    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+  </configSections>
+  <appSettings>
+    <add key="dbNamespace" value="HaaS_Middleware" />
+  </appSettings>
+  <entityFramework>
+    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
+      <parameters>
+        <parameter value="mssqllocaldb" />
+      </parameters>
+    </defaultConnectionFactory>
+    <providers>
+      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
+    </providers>
+  </entityFramework>
+</configuration>
\ No newline at end of file
diff --git a/MiddlewareTests/MiddlewareTests.csproj b/MiddlewareTests/MiddlewareTests.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..5c2752997cb5a425928a03ffb5fe43a68c9fbc87
--- /dev/null
+++ b/MiddlewareTests/MiddlewareTests.csproj
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{4EDA931F-42A9-414E-B6C7-2CFDA19A657E}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>MiddlewareTests</RootNamespace>
+    <AssemblyName>MiddlewareTests</AssemblyName>
+    <TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
+    <IsCodedUITest>False</IsCodedUITest>
+    <TestProjectType>UnitTest</TestProjectType>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
+    </Reference>
+    <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+      <HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\MSTest.TestFramework.1.2.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\packages\MSTest.TestFramework.1.2.1\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System.Core" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="UnitTest1.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\DataAccessTier\DataAccessTier.csproj">
+      <Project>{88827c9b-82af-4302-ac72-4a2636e839eb}</Project>
+      <Name>DataAccessTier</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\DomainObjects\DomainObjects.csproj">
+      <Project>{c3f683c1-16c6-4f99-8ecb-118bac0788c3}</Project>
+      <Name>DomainObjects</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.props'))" />
+    <Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.targets'))" />
+  </Target>
+  <Import Project="..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.2.1\build\net45\MSTest.TestAdapter.targets')" />
+</Project>
\ No newline at end of file
diff --git a/MiddlewareTests/Properties/AssemblyInfo.cs b/MiddlewareTests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c8ffa01de1be07c3aabf3a10f19f9928849a3909
--- /dev/null
+++ b/MiddlewareTests/Properties/AssemblyInfo.cs
@@ -0,0 +1,20 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("MiddlewareTests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MiddlewareTests")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+[assembly: Guid("4eda931f-42a9-414e-b6c7-2cfda19a657e")]
+
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/MiddlewareTests/UnitTest1.cs b/MiddlewareTests/UnitTest1.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4bcd15a6dc8a806f61e3f0610e3eec703d308b7b
--- /dev/null
+++ b/MiddlewareTests/UnitTest1.cs
@@ -0,0 +1,27 @@
+using System;
+using HaaSMiddleware.DataAccessTier.UnitOfWork;
+using HaaSMiddleware.DomainObjects.ClusterInformation;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace MiddlewareTests
+{
+    [TestClass]
+    public class UnitTest1
+    {
+        [TestMethod]
+        public static void Main ()
+        {
+            TestCustomDb("Data Source=DELLG5;Database=HaaS_Middleware_1;integrated security=True;");
+            TestCustomDb("Data Source=DELLG5;Database=HaaS_Middleware_2;integrated security=True;");
+        }
+
+        private static void TestCustomDb(string connString)
+        {
+            DatabaseUnitOfWork uof = new DatabaseUnitOfWork(connString);
+            foreach (Cluster c in uof.ClusterRepository.GetAll())
+            {
+                Console.WriteLine(c);
+            }
+        }
+    }
+}
diff --git a/MiddlewareTests/packages.config b/MiddlewareTests/packages.config
new file mode 100644
index 0000000000000000000000000000000000000000..1301c1730bf2fd143cf5add7c0c743f2bdc2e9cf
--- /dev/null
+++ b/MiddlewareTests/packages.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="EntityFramework" version="6.2.0" targetFramework="net471" />
+  <package id="MSTest.TestAdapter" version="1.2.1" targetFramework="net471" />
+  <package id="MSTest.TestFramework" version="1.2.1" targetFramework="net471" />
+</packages>
\ No newline at end of file
diff --git a/WebServices/WebServices.csproj.user b/WebServices/WebServices.csproj.user
index 1c7f7a403613609db2f164d6322e8b4a0336fdde..ff00e0210c8577ffb5d38913f3bfe3ec9bb51592 100644
--- a/WebServices/WebServices.csproj.user
+++ b/WebServices/WebServices.csproj.user
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <NameOfLastUsedPublishProfile>CiCdPublish</NameOfLastUsedPublishProfile>
+    <NameOfLastUsedPublishProfile>Local</NameOfLastUsedPublishProfile>
     <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
     <UseIISExpress>true</UseIISExpress>
     <Use64BitIISExpress />