diff --git a/GerbilManager.Tests/ImportServiceTests.cs b/GerbilManager.Tests/ImportServiceTests.cs index ffdb400..2f20bb1 100644 --- a/GerbilManager.Tests/ImportServiceTests.cs +++ b/GerbilManager.Tests/ImportServiceTests.cs @@ -545,6 +545,32 @@ namespace GerbilManager.Tests finally { try { Directory.Delete(dir, recursive: true); } catch { } } } + [Fact] + public void SeedGen3g_existing_varieties_preserve_id_name_binding() + { + // SEED-HELL bounce regression: the 61 existing entries must NOT change their + // Id->Name binding after GEN-3g. The 5 new entries (IDs 62-66) are appended. + // A hand-assigned Gerbil.ColorVarietyId pointing to "CP-Fuchs" (ID 58) must + // still map to CP-Fuchs after the migration runs (append-only, no rename-shift). + using var db = NewDb(); // EnsureCreated applies HasData including new 66-entry seed + + // ID 58 (index 57 in old catalog, 0-based) = CP-Fuchs — must still be CP-Fuchs + var cpFuchsId = new Guid("00000000-0000-0000-0000-000000000058"); + var cpFuchs = db.ColorVarieties.Find(cpFuchsId); + Assert.NotNull(cpFuchs); + Assert.Equal("CP-Fuchs", cpFuchs!.Name); + + // New entries at IDs 62-66 exist with correct names + Assert.Equal("CP-Agouti-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000062"))!.Name); + Assert.Equal("CP-Silberagouti-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000063"))!.Name); + Assert.Equal("CP-Algierfuchs-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000064"))!.Name); + Assert.Equal("CP-Polarfuchs-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000065"))!.Name); + Assert.Equal("CP-Orangeschimmel-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000066"))!.Name); + + // Total count is exactly 66 + Assert.Equal(66, db.ColorVarieties.Count()); + } + [Theory] [InlineData("01.02.2020", 2020, 2, 1)] [InlineData("5.3.21", 2021, 3, 5)] diff --git a/GerbilManagerWebAPI/ApplicationContext.cs b/GerbilManagerWebAPI/ApplicationContext.cs index 96c7fc6..0458967 100644 --- a/GerbilManagerWebAPI/ApplicationContext.cs +++ b/GerbilManagerWebAPI/ApplicationContext.cs @@ -231,10 +231,10 @@ public class ApplicationContext : DbContext /// private static void SeedColorVarieties(ModelBuilder modelBuilder) { - // GEN-3g (Kevin): 5 CP-*-Hell variants added (interleaved with base CP varieties). - // Entries 0-53 (PEW..CP-Agouti) are unchanged. Entries 54+ shift by +1 or +2 where - // the new -Hell variants are inserted; IDs follow the i+1 formula. ON DELETE SET NULL - // on Gerbil.ColorVarietyId means the FK drift is safe; re-import re-links by name. + // GEN-3g (Kevin): 5 CP-*-Hell variants appended at the end (IDs 62-66). + // Existing 61 entries are UNCHANGED (same ID->Name binding preserved). + // SortOrder for new entries is appended; Kevin's frontend catalog handles + // the interleaved display order via its own sortOrder values. (string Name, string Genotype)[] catalog = { ("Pink Eyed White (PEW)", "AA chch DD EE GG pp spsp rere"), @@ -290,19 +290,20 @@ public class ApplicationContext : DbContext ("Marder", "aa cchmcchm DD EE GG PP spsp rere"), ("Siam", "aa cchmch DD EE GG PP spsp rere"), ("Zobel-Hell", "aa cchmch DD EE gg PP spsp rere"), - ("CP-Agouti", "AA cchmcchm DD EE GG PP spsp rere"), - ("CP-Agouti-Hell", "AA cchmch DD EE GG PP spsp rere"), // GEN-3g - ("CP-Silberagouti", "AA cchmcchm DD EE gg PP spsp rere"), - ("CP-Silberagouti-Hell","AA cchmch DD EE gg PP spsp rere"), // GEN-3g - ("CP-Algierfuchs", "AA cchmcchm DD ee GG PP spsp rere"), - ("CP-Algierfuchs-Hell", "AA cchmch DD ee GG PP spsp rere"), // GEN-3g - ("CP-Polarfuchs", "AA cchmcchm DD ee gg PP spsp rere"), - ("CP-Polarfuchs-Hell", "AA cchmch DD ee gg PP spsp rere"), // GEN-3g - ("CP-Fuchs", "AA cchmcchm dd ee GG PP spsp rere"), - ("CP-Fuchs-Hell", "AA cchmch dd ee GG PP spsp rere"), - ("CP-Blaufuchs", "AA cchmcchm dd ee gg PP spsp rere"), - ("CP-Orangeschimmel", "AA cchmcchm DD efef GG PP spsp rere"), - ("CP-Orangeschimmel-Hell","AA cchmch DD efef GG PP spsp rere"), // GEN-3g + ("CP-Agouti", "AA cchmcchm DD EE GG PP spsp rere"), + ("CP-Silberagouti", "AA cchmcchm DD EE gg PP spsp rere"), + ("CP-Algierfuchs", "AA cchmcchm DD ee GG PP spsp rere"), + ("CP-Polarfuchs", "AA cchmcchm DD ee gg PP spsp rere"), + ("CP-Fuchs", "AA cchmcchm dd ee GG PP spsp rere"), + ("CP-Fuchs-Hell", "AA cchmch dd ee GG PP spsp rere"), + ("CP-Blaufuchs", "AA cchmcchm dd ee gg PP spsp rere"), + ("CP-Orangeschimmel", "AA cchmcchm DD efef GG PP spsp rere"), + // GEN-3g: 5 new CP-*-Hell variants appended (IDs 62-66, no ID->Name drift) + ("CP-Agouti-Hell", "AA cchmch DD EE GG PP spsp rere"), + ("CP-Silberagouti-Hell", "AA cchmch DD EE gg PP spsp rere"), + ("CP-Algierfuchs-Hell", "AA cchmch DD ee GG PP spsp rere"), + ("CP-Polarfuchs-Hell", "AA cchmch DD ee gg PP spsp rere"), + ("CP-Orangeschimmel-Hell","AA cchmch DD efef GG PP spsp rere"), }; var rows = new ColorVariety[catalog.Length]; diff --git a/GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.cs b/GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.cs deleted file mode 100644 index 57c7746..0000000 --- a/GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional - -namespace GerbilManagerWebAPI.Migrations -{ - /// - public partial class ReseedColorVarietiesGen3g : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000055"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmch DD EE GG PP spsp rere", "CP-Agouti-Hell" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000056"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD EE gg PP spsp rere", "CP-Silberagouti" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000057"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmch DD EE gg PP spsp rere", "CP-Silberagouti-Hell" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000058"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD ee GG PP spsp rere", "CP-Algierfuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000059"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmch DD ee GG PP spsp rere", "CP-Algierfuchs-Hell" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000060"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD ee gg PP spsp rere", "CP-Polarfuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000061"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmch DD ee gg PP spsp rere", "CP-Polarfuchs-Hell" }); - - migrationBuilder.InsertData( - table: "ColorVarieties", - columns: new[] { "Id", "CanonicalGenotype", "Name", "SortOrder" }, - values: new object[,] - { - { new Guid("00000000-0000-0000-0000-000000000062"), "AA cchmcchm dd ee GG PP spsp rere", "CP-Fuchs", 61 }, - { new Guid("00000000-0000-0000-0000-000000000063"), "AA cchmch dd ee GG PP spsp rere", "CP-Fuchs-Hell", 62 }, - { new Guid("00000000-0000-0000-0000-000000000064"), "AA cchmcchm dd ee gg PP spsp rere", "CP-Blaufuchs", 63 }, - { new Guid("00000000-0000-0000-0000-000000000065"), "AA cchmcchm DD efef GG PP spsp rere", "CP-Orangeschimmel", 64 }, - { new Guid("00000000-0000-0000-0000-000000000066"), "AA cchmch DD efef GG PP spsp rere", "CP-Orangeschimmel-Hell", 65 } - }); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DeleteData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000062")); - - migrationBuilder.DeleteData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000063")); - - migrationBuilder.DeleteData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000064")); - - migrationBuilder.DeleteData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000065")); - - migrationBuilder.DeleteData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000066")); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000055"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD EE gg PP spsp rere", "CP-Silberagouti" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000056"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD ee GG PP spsp rere", "CP-Algierfuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000057"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD ee gg PP spsp rere", "CP-Polarfuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000058"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm dd ee GG PP spsp rere", "CP-Fuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000059"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmch dd ee GG PP spsp rere", "CP-Fuchs-Hell" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000060"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm dd ee gg PP spsp rere", "CP-Blaufuchs" }); - - migrationBuilder.UpdateData( - table: "ColorVarieties", - keyColumn: "Id", - keyValue: new Guid("00000000-0000-0000-0000-000000000061"), - columns: new[] { "CanonicalGenotype", "Name" }, - values: new object[] { "AA cchmcchm DD efef GG PP spsp rere", "CP-Orangeschimmel" }); - } - } -} diff --git a/GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.Designer.cs b/GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.Designer.cs similarity index 97% rename from GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.Designer.cs rename to GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.Designer.cs index 3038dc2..fd0517f 100644 --- a/GerbilManagerWebAPI/Migrations/20260606133459_ReseedColorVarietiesGen3g.Designer.cs +++ b/GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.Designer.cs @@ -11,7 +11,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace GerbilManagerWebAPI.Migrations { [DbContext(typeof(ApplicationContext))] - [Migration("20260606133459_ReseedColorVarietiesGen3g")] + [Migration("20260606134002_ReseedColorVarietiesGen3g")] partial class ReseedColorVarietiesGen3g { /// @@ -563,78 +563,78 @@ namespace GerbilManagerWebAPI.Migrations new { Id = new Guid("00000000-0000-0000-0000-000000000055"), - CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", - Name = "CP-Agouti-Hell", + CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", + Name = "CP-Silberagouti", SortOrder = 54 }, new { Id = new Guid("00000000-0000-0000-0000-000000000056"), - CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", - Name = "CP-Silberagouti", + CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", + Name = "CP-Algierfuchs", SortOrder = 55 }, new { Id = new Guid("00000000-0000-0000-0000-000000000057"), - CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", - Name = "CP-Silberagouti-Hell", + CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", + Name = "CP-Polarfuchs", SortOrder = 56 }, new { Id = new Guid("00000000-0000-0000-0000-000000000058"), - CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", - Name = "CP-Algierfuchs", + CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", + Name = "CP-Fuchs", SortOrder = 57 }, new { Id = new Guid("00000000-0000-0000-0000-000000000059"), - CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", - Name = "CP-Algierfuchs-Hell", + CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", + Name = "CP-Fuchs-Hell", SortOrder = 58 }, new { Id = new Guid("00000000-0000-0000-0000-000000000060"), - CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", - Name = "CP-Polarfuchs", + CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", + Name = "CP-Blaufuchs", SortOrder = 59 }, new { Id = new Guid("00000000-0000-0000-0000-000000000061"), - CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", - Name = "CP-Polarfuchs-Hell", + CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", + Name = "CP-Orangeschimmel", SortOrder = 60 }, new { Id = new Guid("00000000-0000-0000-0000-000000000062"), - CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", - Name = "CP-Fuchs", + CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", + Name = "CP-Agouti-Hell", SortOrder = 61 }, new { Id = new Guid("00000000-0000-0000-0000-000000000063"), - CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", - Name = "CP-Fuchs-Hell", + CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", + Name = "CP-Silberagouti-Hell", SortOrder = 62 }, new { Id = new Guid("00000000-0000-0000-0000-000000000064"), - CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", - Name = "CP-Blaufuchs", + CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", + Name = "CP-Algierfuchs-Hell", SortOrder = 63 }, new { Id = new Guid("00000000-0000-0000-0000-000000000065"), - CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", - Name = "CP-Orangeschimmel", + CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", + Name = "CP-Polarfuchs-Hell", SortOrder = 64 }, new diff --git a/GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.cs b/GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.cs new file mode 100644 index 0000000..e5f06e5 --- /dev/null +++ b/GerbilManagerWebAPI/Migrations/20260606134002_ReseedColorVarietiesGen3g.cs @@ -0,0 +1,58 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional + +namespace GerbilManagerWebAPI.Migrations +{ + /// + public partial class ReseedColorVarietiesGen3g : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.InsertData( + table: "ColorVarieties", + columns: new[] { "Id", "CanonicalGenotype", "Name", "SortOrder" }, + values: new object[,] + { + { new Guid("00000000-0000-0000-0000-000000000062"), "AA cchmch DD EE GG PP spsp rere", "CP-Agouti-Hell", 61 }, + { new Guid("00000000-0000-0000-0000-000000000063"), "AA cchmch DD EE gg PP spsp rere", "CP-Silberagouti-Hell", 62 }, + { new Guid("00000000-0000-0000-0000-000000000064"), "AA cchmch DD ee GG PP spsp rere", "CP-Algierfuchs-Hell", 63 }, + { new Guid("00000000-0000-0000-0000-000000000065"), "AA cchmch DD ee gg PP spsp rere", "CP-Polarfuchs-Hell", 64 }, + { new Guid("00000000-0000-0000-0000-000000000066"), "AA cchmch DD efef GG PP spsp rere", "CP-Orangeschimmel-Hell", 65 } + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DeleteData( + table: "ColorVarieties", + keyColumn: "Id", + keyValue: new Guid("00000000-0000-0000-0000-000000000062")); + + migrationBuilder.DeleteData( + table: "ColorVarieties", + keyColumn: "Id", + keyValue: new Guid("00000000-0000-0000-0000-000000000063")); + + migrationBuilder.DeleteData( + table: "ColorVarieties", + keyColumn: "Id", + keyValue: new Guid("00000000-0000-0000-0000-000000000064")); + + migrationBuilder.DeleteData( + table: "ColorVarieties", + keyColumn: "Id", + keyValue: new Guid("00000000-0000-0000-0000-000000000065")); + + migrationBuilder.DeleteData( + table: "ColorVarieties", + keyColumn: "Id", + keyValue: new Guid("00000000-0000-0000-0000-000000000066")); + } + } +} diff --git a/GerbilManagerWebAPI/Migrations/ApplicationContextModelSnapshot.cs b/GerbilManagerWebAPI/Migrations/ApplicationContextModelSnapshot.cs index 5f73404..78191b5 100644 --- a/GerbilManagerWebAPI/Migrations/ApplicationContextModelSnapshot.cs +++ b/GerbilManagerWebAPI/Migrations/ApplicationContextModelSnapshot.cs @@ -560,78 +560,78 @@ namespace GerbilManagerWebAPI.Migrations new { Id = new Guid("00000000-0000-0000-0000-000000000055"), - CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", - Name = "CP-Agouti-Hell", + CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", + Name = "CP-Silberagouti", SortOrder = 54 }, new { Id = new Guid("00000000-0000-0000-0000-000000000056"), - CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", - Name = "CP-Silberagouti", + CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", + Name = "CP-Algierfuchs", SortOrder = 55 }, new { Id = new Guid("00000000-0000-0000-0000-000000000057"), - CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", - Name = "CP-Silberagouti-Hell", + CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", + Name = "CP-Polarfuchs", SortOrder = 56 }, new { Id = new Guid("00000000-0000-0000-0000-000000000058"), - CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", - Name = "CP-Algierfuchs", + CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", + Name = "CP-Fuchs", SortOrder = 57 }, new { Id = new Guid("00000000-0000-0000-0000-000000000059"), - CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", - Name = "CP-Algierfuchs-Hell", + CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", + Name = "CP-Fuchs-Hell", SortOrder = 58 }, new { Id = new Guid("00000000-0000-0000-0000-000000000060"), - CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", - Name = "CP-Polarfuchs", + CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", + Name = "CP-Blaufuchs", SortOrder = 59 }, new { Id = new Guid("00000000-0000-0000-0000-000000000061"), - CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", - Name = "CP-Polarfuchs-Hell", + CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", + Name = "CP-Orangeschimmel", SortOrder = 60 }, new { Id = new Guid("00000000-0000-0000-0000-000000000062"), - CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", - Name = "CP-Fuchs", + CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", + Name = "CP-Agouti-Hell", SortOrder = 61 }, new { Id = new Guid("00000000-0000-0000-0000-000000000063"), - CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", - Name = "CP-Fuchs-Hell", + CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", + Name = "CP-Silberagouti-Hell", SortOrder = 62 }, new { Id = new Guid("00000000-0000-0000-0000-000000000064"), - CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", - Name = "CP-Blaufuchs", + CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", + Name = "CP-Algierfuchs-Hell", SortOrder = 63 }, new { Id = new Guid("00000000-0000-0000-0000-000000000065"), - CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", - Name = "CP-Orangeschimmel", + CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", + Name = "CP-Polarfuchs-Hell", SortOrder = 64 }, new