diff --git a/src/ClientServer/Migrations/20190729124536_init.Designer.cs b/src/ClientServer/Migrations/20190729124536_init.Designer.cs
index c6c64f5e229b2a029d19d3081a7aa30cc33e0805..ffeaccaa604a0c32d509b7e88a555a92ece2aec2 100755
--- a/src/ClientServer/Migrations/20190729124536_init.Designer.cs
+++ b/src/ClientServer/Migrations/20190729124536_init.Designer.cs
@@ -19,8 +19,7 @@ namespace ClientServer.Migrations
 
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                    b.Property<int>("Id");//    .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +29,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                    ;//    .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -52,11 +51,9 @@ namespace ClientServer.Migrations
 
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                    b.Property<int>("Id");//    .ValueGeneratedOnAdd();
 
-                    b.Property<string>("Content")
-                        .HasMaxLength(50000);
+                    b.Property<string>("Content");
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -90,7 +87,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                    ;//    .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -116,8 +113,8 @@ namespace ClientServer.Migrations
 
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
-                    b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                    b.Property<int>("Id");
+                    //    .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +143,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -183,7 +180,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -267,7 +264,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -295,7 +292,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -415,7 +412,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -457,7 +454,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -496,7 +493,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -533,7 +530,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -556,7 +553,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -742,7 +739,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("FeedbackForStudent")
                         .HasMaxLength(10000);
@@ -771,7 +768,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -855,7 +852,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -906,7 +903,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -937,7 +934,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -969,7 +966,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -999,7 +996,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1038,7 +1035,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1063,7 +1060,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1098,7 +1095,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1123,7 +1120,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1148,7 +1145,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1173,7 +1170,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1193,7 +1190,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1249,7 +1246,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1286,7 +1283,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1308,7 +1305,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1346,7 +1343,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1377,7 +1374,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CodeEditorSettingsId");
 
@@ -1408,7 +1405,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1433,7 +1430,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1471,7 +1468,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1543,7 +1540,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1584,7 +1581,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20190729124536_init.cs b/src/ClientServer/Migrations/20190729124536_init.cs
index 45411889a8260ec61b9ad4bf8b1f84ac82a4c396..f63ddeb32533f09de4ae91947fe24fae8439a640 100755
--- a/src/ClientServer/Migrations/20190729124536_init.cs
+++ b/src/ClientServer/Migrations/20190729124536_init.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace ClientServer.Migrations
 {
@@ -13,7 +14,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn)
                 },
                 constraints: table =>
                 {
@@ -25,7 +26,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<byte[]>(nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -43,7 +44,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     FeedbackForStudent = table.Column<string>(maxLength: 10000, nullable: true),
                     LastAssessmentErrorMessage = table.Column<string>(maxLength: 80000, nullable: true),
                     ManualPoints = table.Column<int>(nullable: true),
@@ -63,7 +64,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Description = table.Column<string>(maxLength: 2000, nullable: true),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -82,7 +83,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CompileTimeoutInMs = table.Column<int>(nullable: false),
                     CompilerOptions = table.Column<string>(maxLength: 2000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
@@ -101,7 +102,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     InternalName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -117,7 +118,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Hash = table.Column<string>(maxLength: 2000, nullable: true),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
@@ -135,7 +136,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Hash = table.Column<string>(maxLength: 2000, nullable: true),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
@@ -153,7 +154,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Hash = table.Column<string>(maxLength: 2000, nullable: true),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
@@ -171,7 +172,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     LangShortcut = table.Column<string>(maxLength: 2000, nullable: true),
                     Language = table.Column<string>(maxLength: 2000, nullable: true),
@@ -187,7 +188,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     EditorHighlightModeName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -205,7 +206,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CanAddUserToGroup = table.Column<bool>(nullable: false),
                     CanAssessExercises = table.Column<bool>(nullable: false),
                     CanChangeExercises = table.Column<bool>(nullable: false),
@@ -231,7 +232,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     FontSize = table.Column<int>(nullable: false),
                     HighlightCurrentLine = table.Column<bool>(nullable: false),
@@ -253,7 +254,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CanChangeOtherUsersSystemRole = table.Column<bool>(nullable: false),
                     CanChangeRoles = table.Column<bool>(nullable: false),
                     CanChangeSystemSettings = table.Column<bool>(nullable: false),
@@ -279,7 +280,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     Email = table.Column<string>(maxLength: 2000, nullable: true),
@@ -295,7 +296,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     GroupRolePermissionId = table.Column<int>(nullable: false),
@@ -317,7 +318,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     Email = table.Column<string>(maxLength: 2000, nullable: true),
@@ -340,7 +341,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     CurrentServerMessage = table.Column<string>(maxLength: 10000, nullable: true),
                     CustomProjectTestCompileTimeoutInMs = table.Column<int>(nullable: false),
@@ -394,7 +395,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Email = table.Column<string>(maxLength: 2000, nullable: true),
                     FirstName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -423,7 +424,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayName = table.Column<string>(maxLength: 2000, nullable: true),
                     LastEditorPLangId = table.Column<int>(nullable: false),
@@ -446,7 +447,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CanUserCreateCustomTests = table.Column<bool>(nullable: false),
                     CanUserCreateFiles = table.Column<bool>(nullable: false),
                     CreatedAt = table.Column<DateTime>(nullable: false),
@@ -504,7 +505,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     ExternalId = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     Email = table.Column<string>(maxLength: 2000, nullable: true),
                     FirstName = table.Column<string>(maxLength: 2000, nullable: true),
@@ -531,7 +532,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CodeEditorSettingsId = table.Column<int>(nullable: false),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     LangId = table.Column<int>(nullable: true),
@@ -600,7 +601,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 50000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     CustomProjectId = table.Column<int>(nullable: false),
@@ -622,7 +623,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 80000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     CustomProjectId = table.Column<int>(nullable: false),
@@ -661,7 +662,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 50000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     ExerciseId = table.Column<int>(nullable: false),
@@ -683,7 +684,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     ExerciseId = table.Column<int>(nullable: false),
                     ExerciseId1 = table.Column<int>(nullable: true),
@@ -711,7 +712,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     AutomaticEndAt = table.Column<DateTime>(nullable: true),
                     AutomaticStartAt = table.Column<DateTime>(nullable: true),
                     AvailableWorkingTimeInMinutes = table.Column<int>(nullable: false),
@@ -763,7 +764,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CompileTimeoutInMs = table.Column<int>(nullable: false),
                     CompilerOptions = table.Column<string>(maxLength: 2000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
@@ -789,7 +790,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 80000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayIndex = table.Column<int>(nullable: false),
@@ -986,7 +987,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 80000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayIndex = table.Column<int>(nullable: false),
@@ -1042,7 +1043,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     CustomProjectId = table.Column<int>(nullable: false),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
@@ -1071,7 +1072,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 70000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     CustomProjectSolutionId = table.Column<int>(nullable: false),
@@ -1133,7 +1134,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     AfterSolutionId = table.Column<int>(nullable: false),
                     Content = table.Column<string>(maxLength: 70000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
@@ -1215,7 +1216,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
                     MainFileId = table.Column<int>(nullable: true),
@@ -1239,7 +1240,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CodeTemplateId = table.Column<int>(nullable: false),
                     Content = table.Column<string>(maxLength: 70000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
@@ -1259,7 +1260,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     ExerciseId = table.Column<int>(nullable: false),
                     LastUpdatedAt = table.Column<DateTime>(nullable: false),
@@ -1370,7 +1371,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     Content = table.Column<string>(maxLength: 70000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
                     DisplayIndex = table.Column<int>(nullable: false),
diff --git a/src/ClientServer/Migrations/20190729133239_addTestResultCharacterLimit.Designer.cs b/src/ClientServer/Migrations/20190729133239_addTestResultCharacterLimit.Designer.cs
index 557b03f1ce85b027574493d325a76f04dc8bf620..627d4452b9dd8d462c66c8395ceaa7b8e987ec10 100755
--- a/src/ClientServer/Migrations/20190729133239_addTestResultCharacterLimit.Designer.cs
+++ b/src/ClientServer/Migrations/20190729133239_addTestResultCharacterLimit.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -183,7 +183,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -271,7 +271,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -299,7 +299,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -427,7 +427,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -469,7 +469,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -508,7 +508,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -545,7 +545,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -564,7 +564,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -754,7 +754,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("FeedbackForStudent")
                         .HasMaxLength(10000);
@@ -783,7 +783,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -871,7 +871,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -922,7 +922,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -953,7 +953,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -985,7 +985,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1015,7 +1015,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1054,7 +1054,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1079,7 +1079,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1114,7 +1114,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1139,7 +1139,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1164,7 +1164,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1189,7 +1189,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1209,7 +1209,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1265,7 +1265,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1302,7 +1302,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1324,7 +1324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1362,7 +1362,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1393,7 +1393,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CodeEditorSettingsId");
 
@@ -1424,7 +1424,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1449,7 +1449,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1487,7 +1487,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1559,7 +1559,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1600,7 +1600,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.Designer.cs b/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.Designer.cs
index a3cd14012fba985fbdf1a875b3deb08e211ff262..8b97c87a3f5b31170cc08b5875246231578703e3 100755
--- a/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.Designer.cs
+++ b/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -183,7 +183,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -208,7 +208,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -298,7 +298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -326,7 +326,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -454,7 +454,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -496,7 +496,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -535,7 +535,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -572,7 +572,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -591,7 +591,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -781,7 +781,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("ExerciseReleaseId");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1087,7 +1087,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1114,7 +1114,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1149,7 +1149,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1174,7 +1174,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1199,7 +1199,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1224,7 +1224,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1244,7 +1244,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1300,7 +1300,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1337,7 +1337,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1359,7 +1359,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1399,7 +1399,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1432,7 +1432,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CodeEditorSettingsId");
 
@@ -1463,7 +1463,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1488,7 +1488,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1528,7 +1528,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1600,7 +1600,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1641,7 +1641,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.cs b/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.cs
index 431e5d66e0a277d21547edd20498282170174652..9afeafc0df9cfd30eaf88b19205314698c7f156a 100755
--- a/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.cs
+++ b/src/ClientServer/Migrations/20190801144540_addFakeFksToOtherSides.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace ClientServer.Migrations
 {
@@ -15,7 +16,7 @@ namespace ClientServer.Migrations
                 columns: table => new
                 {
                     Id = table.Column<int>(nullable: false)
-                        .Annotation("Npgsql:ValueGeneratedOnAdd", true),
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn),
                     CompileTimeoutInMs = table.Column<int>(nullable: false),
                     CompilerOptions = table.Column<string>(maxLength: 2000, nullable: true),
                     CreatedAt = table.Column<DateTime>(nullable: false),
diff --git a/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.Designer.cs b/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.Designer.cs
index c184c3718414b2fd38a5f494f2e454849c871c3b..08acb321b794957fc79581b7a41c54d6df858e6b 100755
--- a/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.Designer.cs
+++ b/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -178,7 +178,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -203,7 +203,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -296,7 +296,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -324,7 +324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -452,7 +452,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -494,7 +494,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -533,7 +533,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -570,7 +570,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -589,7 +589,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -774,7 +774,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1082,7 +1082,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1112,7 +1112,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1147,7 +1147,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1172,7 +1172,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1197,7 +1197,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1222,7 +1222,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1242,7 +1242,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1298,7 +1298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1335,7 +1335,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1352,7 +1352,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1395,7 +1395,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1431,7 +1431,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1457,7 +1457,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1477,7 +1477,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1520,7 +1520,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1592,7 +1592,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1633,7 +1633,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.cs b/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.cs
index caa0077f46042e6cd3302c28550d161ee3bb4c91..ae4354887b33a5ec9b805ad861338d3526c0fabc 100755
--- a/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.cs
+++ b/src/ClientServer/Migrations/20190801154937_addFakeFksToOtherSidesStep2.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace ClientServer.Migrations
 {
diff --git a/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.Designer.cs b/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.Designer.cs
index 3796e143085c97d253e3e1a7f4036e3a37c918cf..b854fe011fb82e4396fae96c70c9bca474b14668 100755
--- a/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.Designer.cs
+++ b/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -178,7 +178,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -203,7 +203,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -296,7 +296,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -324,7 +324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -452,7 +452,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -494,7 +494,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -533,7 +533,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -570,7 +570,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -589,7 +589,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -774,7 +774,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1082,7 +1082,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1112,7 +1112,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1147,7 +1147,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1172,7 +1172,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1197,7 +1197,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1222,7 +1222,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1242,7 +1242,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1298,7 +1298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1335,7 +1335,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1352,7 +1352,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1395,7 +1395,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1431,7 +1431,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1457,7 +1457,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1477,7 +1477,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1520,7 +1520,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1592,7 +1592,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1633,7 +1633,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.cs b/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.cs
index b11a7141ff49dfe2de5711a9a8194a652e3609f3..b4ee5bc41b632ae291b2dd8a2dbb782bd48085bc 100755
--- a/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.cs
+++ b/src/ClientServer/Migrations/20190830142059_EnsureNoReleaseDeleteEx.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace ClientServer.Migrations
 {
diff --git a/src/ClientServer/Migrations/20190914132004_SystemRolePermissionCanDownloadPersonalData.Designer.cs b/src/ClientServer/Migrations/20190914132004_SystemRolePermissionCanDownloadPersonalData.Designer.cs
index 6ad929c4e0cb9bd51143ff767fb9e4b7d0433c66..a24dbe5483109d5e6ab9c11ea0f3206363f29028 100755
--- a/src/ClientServer/Migrations/20190914132004_SystemRolePermissionCanDownloadPersonalData.Designer.cs
+++ b/src/ClientServer/Migrations/20190914132004_SystemRolePermissionCanDownloadPersonalData.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -178,7 +178,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -203,7 +203,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -296,7 +296,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -324,7 +324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -452,7 +452,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -494,7 +494,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -533,7 +533,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -570,7 +570,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -589,7 +589,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -774,7 +774,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1082,7 +1082,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1112,7 +1112,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1147,7 +1147,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1172,7 +1172,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1197,7 +1197,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1222,7 +1222,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1242,7 +1242,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1298,7 +1298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1335,7 +1335,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1352,7 +1352,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1395,7 +1395,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1431,7 +1431,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1457,7 +1457,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1477,7 +1477,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1522,7 +1522,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1594,7 +1594,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1635,7 +1635,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20191117200002_TestServerTraceLogs.Designer.cs b/src/ClientServer/Migrations/20191117200002_TestServerTraceLogs.Designer.cs
index c4a601c065de4a4289107df77eaef2acd46390e3..0e680178d4d1656b3721155a0aa5b22cf1d2805e 100755
--- a/src/ClientServer/Migrations/20191117200002_TestServerTraceLogs.Designer.cs
+++ b/src/ClientServer/Migrations/20191117200002_TestServerTraceLogs.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -178,7 +178,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -203,7 +203,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -296,7 +296,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -324,7 +324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -452,7 +452,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -494,7 +494,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -533,7 +533,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -570,7 +570,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -589,7 +589,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -774,7 +774,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1082,7 +1082,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1112,7 +1112,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1147,7 +1147,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1172,7 +1172,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1197,7 +1197,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1222,7 +1222,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1242,7 +1242,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1298,7 +1298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1335,7 +1335,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1352,7 +1352,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1395,7 +1395,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1431,7 +1431,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1457,7 +1457,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1477,7 +1477,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1522,7 +1522,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1597,7 +1597,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1638,7 +1638,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/20191117212447_SubmitTestServerStats.Designer.cs b/src/ClientServer/Migrations/20191117212447_SubmitTestServerStats.Designer.cs
index 23d3ac7a7d13d4252e7afdc229c4b2de49b88afd..7c8cef568322514a4b9d8c462d6dc0f2ec24eea8 100755
--- a/src/ClientServer/Migrations/20191117212447_SubmitTestServerStats.Designer.cs
+++ b/src/ClientServer/Migrations/20191117212447_SubmitTestServerStats.Designer.cs
@@ -20,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.HasKey("Id");
 
@@ -30,7 +30,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -53,7 +53,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -90,7 +90,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -117,7 +117,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -146,7 +146,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -178,7 +178,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<byte[]>("Content");
 
@@ -203,7 +203,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -296,7 +296,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -324,7 +324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("AfterSolutionId");
 
@@ -452,7 +452,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -494,7 +494,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanUserCreateCustomTests");
 
@@ -533,7 +533,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(50000);
@@ -570,7 +570,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -589,7 +589,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime?>("AutomaticEndAt");
 
@@ -774,7 +774,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -816,7 +816,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(70000);
@@ -904,7 +904,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -955,7 +955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int?>("CodeTemplateId")
                         .IsRequired();
@@ -986,7 +986,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1018,7 +1018,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1048,7 +1048,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<string>("Content")
                         .HasMaxLength(80000);
@@ -1082,7 +1082,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<int>("CompileTimeoutInMs");
 
@@ -1112,7 +1112,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1147,7 +1147,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1172,7 +1172,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1197,7 +1197,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1222,7 +1222,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1242,7 +1242,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1298,7 +1298,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1335,7 +1335,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1352,7 +1352,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanAddUserToGroup");
 
@@ -1395,7 +1395,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1431,7 +1431,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1457,7 +1457,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1477,7 +1477,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole");
 
@@ -1522,7 +1522,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1603,7 +1603,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
@@ -1644,7 +1644,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd();
+                        ; // .ValueGeneratedOnAdd();
 
                     b.Property<DateTime>("CreatedAt");
 
diff --git a/src/ClientServer/Migrations/YapexDbContextModelSnapshot.cs b/src/ClientServer/Migrations/YapexDbContextModelSnapshot.cs
index 9ef94299f02aae269d0a8cf2ce9cd16b5820d457..4b16744bd10b1c6f50483e2802e2d0a6fe498568 100755
--- a/src/ClientServer/Migrations/YapexDbContextModelSnapshot.cs
+++ b/src/ClientServer/Migrations/YapexDbContextModelSnapshot.cs
@@ -4,6 +4,7 @@ using ClientServer.Db;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.EntityFrameworkCore.Infrastructure;
 using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 
 namespace ClientServer.Migrations
 {
@@ -19,7 +20,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.AwaitDummy", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.HasKey("Id");
@@ -30,7 +31,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProject", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -59,7 +60,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -103,7 +104,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -136,7 +137,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -173,7 +174,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -214,7 +215,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<byte[]>("Content")
@@ -246,7 +247,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.CustomProjects.CustomProjectTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<int>("CompileTimeoutInMs")
@@ -367,7 +368,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolution", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -402,7 +403,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.AfterSolutions.AfterSolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<int>("AfterSolutionId")
@@ -573,7 +574,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.CodeTemplate", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -623,7 +624,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Exercise", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<bool>("CanUserCreateCustomTests")
@@ -674,7 +675,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.ExerciseDescription", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -718,7 +719,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.MetaData", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -741,7 +742,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Release.ExerciseRelease", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime?>("AutomaticEndAt")
@@ -988,7 +989,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionAssessment", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1044,7 +1045,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Solution.SolutionFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -1162,7 +1163,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tag", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1225,7 +1226,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.TemplateFile", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<int?>("CodeTemplateId")
@@ -1282,7 +1283,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.CustomTest", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -1323,7 +1324,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.DefaultCustomTestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<int>("CompileTimeoutInMs")
@@ -1362,7 +1363,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.Test", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<string>("Content")
@@ -1406,7 +1407,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestSettings", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<int>("CompileTimeoutInMs")
@@ -1445,7 +1446,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Exercises.Tests.TestType", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1470,7 +1471,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceMarkdownAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1502,7 +1503,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceTestAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1534,7 +1535,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Files.FileReferenceUserFileAsset", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1566,7 +1567,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Lang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1591,7 +1592,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.PLang", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1661,7 +1662,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.ExternalUser", b =>
                 {
                     b.Property<int>("ExternalId")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1707,7 +1708,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1728,7 +1729,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.GroupRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<bool>("CanAddUserToGroup")
@@ -1787,7 +1788,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.CodeEditorSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1835,7 +1836,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.Settings.UserSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1867,7 +1868,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRole", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -1892,7 +1893,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemRolePermission", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<bool>("CanChangeOtherUsersSystemRole")
@@ -1954,7 +1955,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.SystemSetting", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -2063,7 +2064,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.User", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")
@@ -2115,7 +2116,7 @@ namespace ClientServer.Migrations
             modelBuilder.Entity("ClientServer.Models.Users.UserGroup", b =>
                 {
                     b.Property<int>("Id")
-                        .ValueGeneratedOnAdd()
+                        //.ValueGeneratedOnAdd()
                         .HasColumnType("integer");
 
                     b.Property<DateTime>("CreatedAt")