diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor
index a115d70ca9..92e50fe064 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor
@@ -1,9 +1,9 @@
-@attribute [Route(Urls.ProductPage + "/{Id:guid}/{Name}")]
-@attribute [Route("{culture?}" + Urls.ProductPage + "/{Id:guid}/{Name}")]
+@attribute [Route(Urls.ProductPage + "/{Id:int}/{Name}")]
+@attribute [Route("{culture?}" + Urls.ProductPage + "/{Id:int}/{Name}")]
@attribute [AppResponseCache(SharedMaxAge = 3600 * 24)]
@inherits AppPageBase
-@product?.Name
+@Name
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor.cs
index 482a7994b3..165ec2ffb4 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor.cs
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Components/Pages/ProductPage.razor.cs
@@ -9,7 +9,10 @@ public partial class ProductPage
protected override string? Subtitle => string.Empty;
- [Parameter] public Guid Id { get; set; }
+ ///
+ ///
+ ///
+ [Parameter] public int Id { get; set; }
[Parameter] public string? Name { get; set; }
@@ -29,14 +32,9 @@ public partial class ProductPage
protected override async Task OnInitAsync()
{
- await base.OnInitAsync();
-
- await LoadProduct();
+ await Task.WhenAll(LoadProduct(), LoadSimilarProducts(), LoadSiblingProducts());
- if (InPrerenderSession is false)
- {
- await Task.WhenAll(LoadSimilarProducts(), LoadSiblingProducts());
- }
+ await base.OnInitAsync();
}
private async Task LoadProduct()
@@ -54,13 +52,11 @@ private async Task LoadProduct()
private async Task LoadSimilarProducts()
{
- if (product is null) return;
-
try
{
similarProducts = await productViewController
.WithQuery(new ODataQuery { Top = 10 })
- .GetSimilar(product.Id, CurrentCancellationToken);
+ .GetSimilar(Id, CurrentCancellationToken);
}
finally
{
@@ -71,13 +67,11 @@ private async Task LoadSimilarProducts()
private async Task LoadSiblingProducts()
{
- if (product is null || product.CategoryId.HasValue is false) return;
-
try
{
siblingProducts = await productViewController
- .WithQuery(new ODataQuery { Top = 10, Filter = $"{nameof(ProductDto.Id)} ne {product.Id}" })
- .GetSiblings(product.CategoryId.Value, CurrentCancellationToken);
+ .WithQuery(new ODataQuery { Top = 10 })
+ .GetSiblings(Id, CurrentCancellationToken);
}
finally
{
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/.config/dotnet-tools.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/.config/dotnet-tools.json
index 124f4d1efb..1176e05f80 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/.config/dotnet-tools.json
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/.config/dotnet-tools.json
@@ -4,7 +4,7 @@
"tools": {
"dotnet-ef": {
//#if (framework == 'net9.0')
- "version": "9.0.1",
+ "version": "9.0.2",
//#else
"version": "8.0.12",
//#endif
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductController.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductController.cs
index 80c4110c7a..5e55364b28 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductController.cs
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductController.cs
@@ -78,7 +78,7 @@ public async Task Update(ProductDto dto, CancellationToken cancellat
await DbContext.SaveChangesAsync(cancellationToken);
- await responseCacheService.PurgeCache("/", $"/product/{dto.Id}/{Uri.EscapeDataString(dto.Name!)}", $"/api/ProductView/Get/{dto.Id}" /*You can also use Url.Action to build urls.*/);
+ await responseCacheService.PurgeCache("/", $"/product/{dto.ShortId}/{Uri.EscapeDataString(dto.Name!)}", $"/api/ProductView/Get/{dto.ShortId}" /*You can also use Url.Action to build urls.*/);
//#if (signalR == true)
await PublishDashboardDataChanged(cancellationToken);
@@ -99,7 +99,7 @@ public async Task Delete(Guid id, string concurrencyStamp, CancellationToken can
await DbContext.SaveChangesAsync(cancellationToken);
- await responseCacheService.PurgeCache("/", $"/product/{entityToDelete.Id}/{Uri.EscapeDataString(entityToDelete.Name!)}", $"/api/ProductView/Get/{entityToDelete.Id}" /*You can also use Url.Action to build urls.*/);
+ await responseCacheService.PurgeCache("/", $"/product/{entityToDelete.ShortId}/{Uri.EscapeDataString(entityToDelete.Name!)}", $"/api/ProductView/Get/{entityToDelete.ShortId}" /*You can also use Url.Action to build urls.*/);
//#if (signalR == true)
await PublishDashboardDataChanged(cancellationToken);
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductViewController.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductViewController.cs
index 20ded50d53..aee679c36e 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductViewController.cs
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Products/ProductViewController.cs
@@ -15,9 +15,9 @@ public IQueryable Get()
[HttpGet("{id}")]
[AppResponseCache(SharedMaxAge = 3600 * 24 * 7, MaxAge = 60 * 5, UserAgnostic = true)]
- public async Task Get(Guid id, CancellationToken cancellationToken)
+ public async Task Get(int id, CancellationToken cancellationToken)
{
- var product = await Get().FirstOrDefaultAsync(t => t.Id == id, cancellationToken)
+ var product = await Get().FirstOrDefaultAsync(t => t.ShortId == id, cancellationToken)
?? throw new ResourceNotFoundException(Localizer[nameof(AppStrings.ProductCouldNotBeFound)]);
return product;
@@ -26,19 +26,24 @@ public async Task Get(Guid id, CancellationToken cancellationToken)
// This method needs to be implemented based on the logic required in each business.
[EnableQuery, HttpGet("{id}"), AppResponseCache(MaxAge = 60 * 5, SharedMaxAge = 0, UserAgnostic = true)]
- public IQueryable GetSimilar(Guid id)
+ public IQueryable GetSimilar(int id)
{
var similarProducts = Get()
.OrderBy(p => EF.Functions.Random())
- .Where(p => p.Id != id);
+ .Where(p => p.ShortId != id);
return similarProducts;
}
[EnableQuery, HttpGet("{id}"), AppResponseCache(MaxAge = 60 * 5, SharedMaxAge = 0, UserAgnostic = true)]
- public IQueryable GetSiblings(Guid id)
+ public async Task> GetSiblings(int id, CancellationToken cancellationToken)
{
- var siblings = Get().Where(t => t.CategoryId == id);
+ var categoryId = await DbContext.Products
+ .Where(p => p.ShortId == id)
+ .Select(p => p.CategoryId)
+ .FirstOrDefaultAsync(cancellationToken);
+
+ var siblings = Get().Where(t => t.ShortId != id && t.CategoryId == categoryId);
return siblings;
}
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/AppDbContext.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/AppDbContext.cs
index b92dcf19e0..6f11dab968 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/AppDbContext.cs
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/AppDbContext.cs
@@ -38,6 +38,18 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
+ //#if (IsInsideProjectTemplate == true)
+ /*
+ //#endif
+ //#if (database == "PostgreSQL" || database == "SqlServer")
+ modelBuilder.HasSequence("ProductShortId")
+ .StartsAt(10_000)
+ .IncrementsBy(1);
+ //#endif
+ //#if (IsInsideProjectTemplate == true)
+ */
+ //#endif
+
modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
ConfigureIdentityTableNames(modelBuilder);
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs
index b2d6de7c4d..b45b857262 100644
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs
@@ -1,4 +1,5 @@
-using Boilerplate.Server.Api.Models.Products;
+//+:cnd:noEmit
+using Boilerplate.Server.Api.Models.Products;
namespace Boilerplate.Server.Api.Data.Configurations.Identity;
@@ -7,40 +8,52 @@ public partial class ProductConfiguration : IEntityTypeConfiguration
public void Configure(EntityTypeBuilder builder)
{
builder.HasIndex(p => p.Name).IsUnique();
+ builder.HasIndex(p => p.ShortId).IsUnique();
+
+ //#if (IsInsideProjectTemplate == true)
+ /*
+ //#endif
+ //#if (database == "PostgreSQL" || database == "SqlServer")
+ builder.Property(p => p.Number).UseSequence("ProductShortId");
+ //#if (IsInsideProjectTemplate == true)
+ */
+ //#endif
var defaultConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
DateTimeOffset baseDate = DateTimeOffset.Parse("2022-07-12", styles: DateTimeStyles.AssumeUniversal);
+ const int productsCountInEachForLoop = 23;
+
for (int i = 1; i <= 6; i++)
{
builder.HasData(
- new() { Id = Guid.Parse($"9a59dda2-7b12-4cc1-9658-d2586eef91d{i}"), Name = $"Mustang - {i}", Price = 27155, Description = "The Ford Mustang is ranked #1 in Sports Cars", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"a42914e2-92da-4f0b-aab0-b9572c9671b{i}"), Name = $"GT - {i}", Price = 500000, Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"f75325c8-a213-470b-ab93-4677ca4caee{i}"), Name = $"Ranger - {i}", Price = 25000, Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"43a82ec1-aab6-445f-83af-a85028417cf{i}"), Name = $"Raptor - {i}", Price = 53205, Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world", CreatedOn = baseDate.AddDays(-30), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"f01b32bb-eccd-43be-aaf3-3c788a7d755{i}"), Name = $"Maverick - {i}", Price = 22470, Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp },
-
- new() { Id = Guid.Parse($"d53bb159-f4f9-493a-b4dc-215fd765ca2{i}"), Name = $"Roadster - {i}", Price = 42800, Description = "A powerful convertible sports car", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"74bb268f-18cf-45ec-9f2f-30b34b18fb3{i}"), Name = $"Altima - {i}", Price = 24550, Description = "A perfectly adequate family sedan with sharp looks", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"eb787e1a-7ba8-4708-924b-9f7964fa0f6{i}"), Name = $"GT-R - {i}", Price = 113540, Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"362a6638-0031-485d-825f-e8aeae63a33{i}"), Name = $"Juke - {i}", Price = 28100, Description = "A new smart SUV", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp },
-
- new() { Id = Guid.Parse($"8629931e-e26e-4885-b561-e447197d4b6{i}"), Name = $"H247 - {i}", Price = 54950, Description = "Subcompact luxury crossover SUV", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"a1c1987d-ee6c-41ad-9647-18de4504303{i}"), Name = $"V297 - {i}", Price = 103360, Description = "Battery-electric full-size luxury liftback", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"59eea437-bdf2-4c11-b262-06643b25328{i}"), Name = $"R50 - {i}", Price = 2000000, Description = "Ultra-rare and powerful sports car", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp },
-
- new() { Id = Guid.Parse($"01d223a3-182d-406a-9722-19dab083f96{i}"), Name = $"M550i - {i}", Price = 77790, Description = "A powerful, sporty variant of the BMW 5 Series", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"64a2616f-3af6-4248-86cf-4a605095a64{i}"), Name = $"540i - {i}", Price = 60945, Description = "Luxurious and powerful sedan that combines elegant design with impressive performance", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"ac50dc29-4b7e-4d4d-b23a-4227d91f2bb{i}"), Name = $"530e - {i}", Price = 56545, Description = "Combines class, spaciousness, and a well-built cabin", CreatedOn = baseDate.AddDays(-20), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"fb41cc51-9abd-4b45-b0d9-ea8f565ec50{i}"), Name = $"530i - {i}", Price = 55195, Description = "Zippy and fuel-efficient powertrain, and sure-footed handling", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"e159b1ad-12aa-4e02-a39b-d5e4a32eaf9{i}"), Name = $"M850i - {i}", Price = 100045, Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine", CreatedOn = baseDate.AddDays(-30), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"4d9cb0f4-1f32-45d5-8c84-d7f15bc569d{i}"), Name = $"X7 - {i}", Price = 77980, Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"1b22319e-0a58-471e-82b6-75cd8b9d98e{i}"), Name = $"IX - {i}", Price = 87000, Description = "Luxury crossover SUV that combines cutting-edge technology", CreatedOn = baseDate.AddDays(-40), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp },
-
- new() { Id = Guid.Parse($"96c73b9c-03df-4f70-ac8d-75c32b89881{i}"), Name = $"Model 3 - {i}", Price = 61990, Description = "Rapid acceleration and dynamic handling", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"840ba759-bde9-4821-b49b-c981c082bb9{i}"), Name = $"Model S - {i}", Price = 135000, Description = "Finishes near the top of our luxury electric car rankings.", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"840e113b-5074-4b1c-86bd-e9affb65941{i}"), Name = $"Model X - {i}", Price = 138890, Description = "Heart-pumping acceleration, long drive range", CreatedOn = baseDate.AddDays(-20), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp },
- new() { Id = Guid.Parse($"b2db9074-a0a9-4054-87e2-206b7a55c79{i}"), Name = $"Model Y - {i}", Price = 67790, Description = "Extensive driving range, lots of standard safety features", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp }
+ new() { Id = Guid.Parse($"9a59dda2-7b12-4cc1-9658-d2586eef91d{i}"), Name = $"Mustang - {i}", Price = 27155, Description = "The Ford Mustang is ranked #1 in Sports Cars", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9001 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"a42914e2-92da-4f0b-aab0-b9572c9671b{i}"), Name = $"GT - {i}", Price = 500000, Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9002 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"f75325c8-a213-470b-ab93-4677ca4caee{i}"), Name = $"Ranger - {i}", Price = 25000, Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9003 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"43a82ec1-aab6-445f-83af-a85028417cf{i}"), Name = $"Raptor - {i}", Price = 53205, Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world", CreatedOn = baseDate.AddDays(-30), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9004 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"f01b32bb-eccd-43be-aaf3-3c788a7d755{i}"), Name = $"Maverick - {i}", Price = 22470, Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9005 + (productsCountInEachForLoop * i) },
+
+ new() { Id = Guid.Parse($"d53bb159-f4f9-493a-b4dc-215fd765ca2{i}"), Name = $"Roadster - {i}", Price = 42800, Description = "A powerful convertible sports car", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9006 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"74bb268f-18cf-45ec-9f2f-30b34b18fb3{i}"), Name = $"Altima - {i}", Price = 24550, Description = "A perfectly adequate family sedan with sharp looks", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9007 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"eb787e1a-7ba8-4708-924b-9f7964fa0f6{i}"), Name = $"GT-R - {i}", Price = 113540, Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9008 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"362a6638-0031-485d-825f-e8aeae63a33{i}"), Name = $"Juke - {i}", Price = 28100, Description = "A new smart SUV", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9009 + (productsCountInEachForLoop * i) },
+
+ new() { Id = Guid.Parse($"8629931e-e26e-4885-b561-e447197d4b6{i}"), Name = $"H247 - {i}", Price = 54950, Description = "Subcompact luxury crossover SUV", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9010 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"a1c1987d-ee6c-41ad-9647-18de4504303{i}"), Name = $"V297 - {i}", Price = 103360, Description = "Battery-electric full-size luxury liftback", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9011 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"59eea437-bdf2-4c11-b262-06643b25328{i}"), Name = $"R50 - {i}", Price = 2000000, Description = "Ultra-rare and powerful sports car", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9012 + (productsCountInEachForLoop * i) },
+
+ new() { Id = Guid.Parse($"01d223a3-182d-406a-9722-19dab083f96{i}"), Name = $"M550i - {i}", Price = 77790, Description = "A powerful, sporty variant of the BMW 5 Series", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9013 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"64a2616f-3af6-4248-86cf-4a605095a64{i}"), Name = $"540i - {i}", Price = 60945, Description = "Luxurious and powerful sedan that combines elegant design with impressive performance", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9014 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"ac50dc29-4b7e-4d4d-b23a-4227d91f2bb{i}"), Name = $"530e - {i}", Price = 56545, Description = "Combines class, spaciousness, and a well-built cabin", CreatedOn = baseDate.AddDays(-20), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9015 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"fb41cc51-9abd-4b45-b0d9-ea8f565ec50{i}"), Name = $"530i - {i}", Price = 55195, Description = "Zippy and fuel-efficient powertrain, and sure-footed handling", CreatedOn = baseDate.AddDays(-25), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9016 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"e159b1ad-12aa-4e02-a39b-d5e4a32eaf9{i}"), Name = $"M850i - {i}", Price = 100045, Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine", CreatedOn = baseDate.AddDays(-30), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9017 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"4d9cb0f4-1f32-45d5-8c84-d7f15bc569d{i}"), Name = $"X7 - {i}", Price = 77980, Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9018 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"1b22319e-0a58-471e-82b6-75cd8b9d98e{i}"), Name = $"IX - {i}", Price = 87000, Description = "Luxury crossover SUV that combines cutting-edge technology", CreatedOn = baseDate.AddDays(-40), CategoryId = Guid.Parse("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9019 + (productsCountInEachForLoop * i) },
+
+ new() { Id = Guid.Parse($"96c73b9c-03df-4f70-ac8d-75c32b89881{i}"), Name = $"Model 3 - {i}", Price = 61990, Description = "Rapid acceleration and dynamic handling", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9020 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"840ba759-bde9-4821-b49b-c981c082bb9{i}"), Name = $"Model S - {i}", Price = 135000, Description = "Finishes near the top of our luxury electric car rankings.", CreatedOn = baseDate.AddDays(-15), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9021 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"840e113b-5074-4b1c-86bd-e9affb65941{i}"), Name = $"Model X - {i}", Price = 138890, Description = "Heart-pumping acceleration, long drive range", CreatedOn = baseDate.AddDays(-20), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9022 + (productsCountInEachForLoop * i) },
+ new() { Id = Guid.Parse($"b2db9074-a0a9-4054-87e2-206b7a55c79{i}"), Name = $"Model Y - {i}", Price = 67790, Description = "Extensive driving range, lots of standard safety features", CreatedOn = baseDate.AddDays(-35), CategoryId = Guid.Parse("747f6d66-7524-40ca-8494-f65e85b5ee5d"), ConcurrencyStamp = defaultConcurrencyStamp, ShortId = 9023 + (productsCountInEachForLoop * i) }
);
}
}
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.Designer.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.Designer.cs
deleted file mode 100644
index d9208cecd7..0000000000
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.Designer.cs
+++ /dev/null
@@ -1,839 +0,0 @@
-//
-using Microsoft.EntityFrameworkCore.Infrastructure;
-
-#nullable disable
-
-namespace Boilerplate.Server.Api.Data.Migrations;
-
-[DbContext(typeof(AppDbContext))]
-[Migration("20250109120517_InitialMigration")]
-partial class InitialMigration
-{
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "9.0.0");
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Categories.Category", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("Color")
- .HasColumnType("TEXT");
-
- b.Property("ConcurrencyStamp")
- .IsRequired()
- .HasColumnType("BLOB");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("Name")
- .IsUnique();
-
- b.ToTable("Categories");
-
- b.HasData(
- new
- {
- Id = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- Color = "#FFCD56",
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- Name = "Ford"
- },
- new
- {
- Id = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
- Color = "#FF6384",
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- Name = "Nissan"
- },
- new
- {
- Id = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
- Color = "#4BC0C0",
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- Name = "Benz"
- },
- new
- {
- Id = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- Color = "#FF9124",
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- Name = "BMW"
- },
- new
- {
- Id = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
- Color = "#2B88D8",
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- Name = "Tesla"
- });
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.Role", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("ConcurrencyStamp")
- .IsConcurrencyToken()
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .HasMaxLength(50)
- .HasColumnType("TEXT");
-
- b.Property("NormalizedName")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName")
- .IsUnique()
- .HasDatabaseName("RoleNameIndex");
-
- b.ToTable("Roles", (string)null);
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("AccessFailedCount")
- .HasColumnType("INTEGER");
-
- b.Property("BirthDate")
- .HasColumnType("INTEGER");
-
- b.Property("ConcurrencyStamp")
- .IsConcurrencyToken()
- .HasColumnType("TEXT");
-
- b.Property("ElevatedAccessTokenRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("Email")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("EmailConfirmed")
- .HasColumnType("INTEGER");
-
- b.Property("EmailTokenRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("FullName")
- .HasColumnType("TEXT");
-
- b.Property("Gender")
- .HasColumnType("INTEGER");
-
- b.Property("LockoutEnabled")
- .HasColumnType("INTEGER");
-
- b.Property("LockoutEnd")
- .HasColumnType("INTEGER");
-
- b.Property("NormalizedEmail")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("NormalizedUserName")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("OtpRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("PasswordHash")
- .HasColumnType("TEXT");
-
- b.Property("PhoneNumber")
- .HasColumnType("TEXT");
-
- b.Property("PhoneNumberConfirmed")
- .HasColumnType("INTEGER");
-
- b.Property("PhoneNumberTokenRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("ProfileImageName")
- .HasColumnType("TEXT");
-
- b.Property("ResetPasswordTokenRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("SecurityStamp")
- .HasColumnType("TEXT");
-
- b.Property("TwoFactorEnabled")
- .HasColumnType("INTEGER");
-
- b.Property("TwoFactorTokenRequestedOn")
- .HasColumnType("INTEGER");
-
- b.Property("UserName")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("Email")
- .IsUnique()
- .HasFilter("[Email] IS NOT NULL");
-
- b.HasIndex("NormalizedEmail")
- .HasDatabaseName("EmailIndex");
-
- b.HasIndex("NormalizedUserName")
- .IsUnique()
- .HasDatabaseName("UserNameIndex");
-
- b.HasIndex("PhoneNumber")
- .IsUnique()
- .HasFilter("[PhoneNumber] IS NOT NULL");
-
- b.ToTable("Users", (string)null);
-
- b.HasData(
- new
- {
- Id = new Guid("8ff71671-a1d6-4f97-abb9-d87d7b47d6e7"),
- AccessFailedCount = 0,
- BirthDate = 1306790461440000000L,
- ConcurrencyStamp = "315e1a26-5b3a-4544-8e91-2760cd28e231",
- Email = "test@bitplatform.dev",
- EmailConfirmed = true,
- EmailTokenRequestedOn = 1306790461440000000L,
- FullName = "Boilerplate test account",
- Gender = 0,
- LockoutEnabled = true,
- NormalizedEmail = "TEST@BITPLATFORM.DEV",
- NormalizedUserName = "TEST",
- PasswordHash = "AQAAAAIAAYagAAAAEP0v3wxkdWtMkHA3Pp5/JfS+42/Qto9G05p2mta6dncSK37hPxEHa3PGE4aqN30Aag==",
- PhoneNumber = "+31684207362",
- PhoneNumberConfirmed = true,
- SecurityStamp = "959ff4a9-4b07-4cc1-8141-c5fc033daf83",
- TwoFactorEnabled = false,
- UserName = "test"
- });
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.UserSession", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("Address")
- .HasColumnType("TEXT");
-
- b.Property("DeviceInfo")
- .HasColumnType("TEXT");
-
- b.Property("IP")
- .HasColumnType("TEXT");
-
- b.Property("Privileged")
- .HasColumnType("INTEGER");
-
- b.Property("RenewedOn")
- .HasColumnType("INTEGER");
-
- b.Property("SignalRConnectionId")
- .HasColumnType("TEXT");
-
- b.Property("StartedOn")
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("UserSessions");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Products.Product", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("CategoryId")
- .HasColumnType("TEXT");
-
- b.Property("ConcurrencyStamp")
- .IsRequired()
- .HasColumnType("BLOB");
-
- b.Property("CreatedOn")
- .HasColumnType("INTEGER");
-
- b.Property("Description")
- .HasMaxLength(512)
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.Property("Price")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("CategoryId");
-
- b.HasIndex("Name")
- .IsUnique();
-
- b.ToTable("Products");
-
- b.HasData(
- new
- {
- Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d4"),
- CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306466648064000000L,
- Description = "The Ford Mustang is ranked #1 in Sports Cars",
- Name = "Mustang",
- Price = 27155m
- },
- new
- {
- Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b4"),
- CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306457800704000000L,
- Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
- Name = "GT",
- Price = 500000m
- },
- new
- {
- Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caeef"),
- CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306440105984000000L,
- Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
- Name = "Ranger",
- Price = 25000m
- },
- new
- {
- Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf7"),
- CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306431258624000000L,
- Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
- Name = "Raptor",
- Price = 53205m
- },
- new
- {
- Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7558"),
- CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306422411264000000L,
- Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
- Name = "Maverick",
- Price = 22470m
- },
- new
- {
- Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca25"),
- CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306466648064000000L,
- Description = "A powerful convertible sports car",
- Name = "Roadster",
- Price = 42800m
- },
- new
- {
- Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb3c"),
- CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306457800704000000L,
- Description = "A perfectly adequate family sedan with sharp looks",
- Name = "Altima",
- Price = 24550m
- },
- new
- {
- Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f64"),
- CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306440105984000000L,
- Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
- Name = "GT-R",
- Price = 113540m
- },
- new
- {
- Id = new Guid("362a6638-0031-485d-825f-e8aeae63a334"),
- CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306422411264000000L,
- Description = "A new smart SUV",
- Name = "Juke",
- Price = 28100m
- },
- new
- {
- Id = new Guid("8629931e-e26e-4885-b561-e447197d4b69"),
- CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306466648064000000L,
- Description = "",
- Name = "H247",
- Price = 54950m
- },
- new
- {
- Id = new Guid("a1c1987d-ee6c-41ad-9647-18de4504303a"),
- CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306457800704000000L,
- Description = "",
- Name = "V297",
- Price = 103360m
- },
- new
- {
- Id = new Guid("59eea437-bdf2-4c11-b262-06643b253288"),
- CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306422411264000000L,
- Description = "",
- Name = "R50",
- Price = 2000000m
- },
- new
- {
- Id = new Guid("01d223a3-182d-406a-9722-19dab083f96e"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306466648064000000L,
- Description = "",
- Name = "M550i",
- Price = 77790m
- },
- new
- {
- Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a644"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306457800704000000L,
- Description = "",
- Name = "540i",
- Price = 60945m
- },
- new
- {
- Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb0"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306448953344000000L,
- Description = "",
- Name = "530e",
- Price = 56545m
- },
- new
- {
- Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec502"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306440105984000000L,
- Description = "",
- Name = "530i",
- Price = 55195m
- },
- new
- {
- Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf99"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306431258624000000L,
- Description = "",
- Name = "M850i",
- Price = 100045m
- },
- new
- {
- Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d5"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306422411264000000L,
- Description = "",
- Name = "X7",
- Price = 77980m
- },
- new
- {
- Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e1"),
- CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306413563904000000L,
- Description = "",
- Name = "IX",
- Price = 87000m
- },
- new
- {
- Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b89881a"),
- CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306466648064000000L,
- Description = "rapid acceleration and dynamic handling",
- Name = "Model 3",
- Price = 61990m
- },
- new
- {
- Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb96"),
- CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306457800704000000L,
- Description = "finishes near the top of our luxury electric car rankings.",
- Name = "Model S",
- Price = 135000m
- },
- new
- {
- Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659412"),
- CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306448953344000000L,
- Description = "Heart-pumping acceleration, long drive range",
- Name = "Model X",
- Price = 138890m
- },
- new
- {
- Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c793"),
- CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
- ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
- CreatedOn = 1306422411264000000L,
- Description = "extensive driving range, lots of standard safety features",
- Name = "Model Y",
- Price = 67790m
- });
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.PushNotification.PushNotificationSubscription", b =>
- {
- b.Property("DeviceId")
- .HasColumnType("TEXT");
-
- b.Property("Auth")
- .HasColumnType("TEXT");
-
- b.Property("Endpoint")
- .HasColumnType("TEXT");
-
- b.Property("ExpirationTime")
- .HasColumnType("INTEGER");
-
- b.Property("P256dh")
- .HasColumnType("TEXT");
-
- b.Property("Platform")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("PushChannel")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("RenewedOn")
- .HasColumnType("INTEGER");
-
- b.PrimitiveCollection("Tags")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("UserSessionId")
- .HasColumnType("TEXT");
-
- b.HasKey("DeviceId");
-
- b.HasIndex("UserSessionId")
- .IsUnique()
- .HasFilter("[UserSessionId] IS NOT NULL");
-
- b.ToTable("PushNotificationSubscriptions");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Todo.TodoItem", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("Date")
- .HasColumnType("INTEGER");
-
- b.Property("IsDone")
- .HasColumnType("INTEGER");
-
- b.Property("Title")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("TodoItems");
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("FriendlyName")
- .HasColumnType("TEXT");
-
- b.Property("Xml")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.ToTable("DataProtectionKeys");
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ClaimType")
- .HasColumnType("TEXT");
-
- b.Property("ClaimValue")
- .HasColumnType("TEXT");
-
- b.Property("RoleId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("RoleClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ClaimType")
- .HasColumnType("TEXT");
-
- b.Property("ClaimValue")
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("UserClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
- {
- b.Property("LoginProvider")
- .HasColumnType("TEXT");
-
- b.Property("ProviderKey")
- .HasColumnType("TEXT");
-
- b.Property("ProviderDisplayName")
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("LoginProvider", "ProviderKey");
-
- b.HasIndex("UserId");
-
- b.ToTable("UserLogins", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
- {
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("RoleId")
- .HasColumnType("TEXT");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId");
-
- b.ToTable("UserRoles", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
- {
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("LoginProvider")
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .HasColumnType("TEXT");
-
- b.Property("Value")
- .HasColumnType("TEXT");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("UserTokens", (string)null);
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.UserSession", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", "User")
- .WithMany("Sessions")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Products.Product", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Categories.Category", "Category")
- .WithMany("Products")
- .HasForeignKey("CategoryId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Category");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.PushNotification.PushNotificationSubscription", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.UserSession", "UserSession")
- .WithOne("PushNotificationSubscription")
- .HasForeignKey("Boilerplate.Server.Api.Models.PushNotification.PushNotificationSubscription", "UserSessionId")
- .OnDelete(DeleteBehavior.SetNull);
-
- b.Navigation("UserSession");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Todo.TodoItem", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", "User")
- .WithMany("TodoItems")
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("User");
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.Role", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.Role", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
- {
- b.HasOne("Boilerplate.Server.Api.Models.Identity.User", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Categories.Category", b =>
- {
- b.Navigation("Products");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.User", b =>
- {
- b.Navigation("Sessions");
-
- b.Navigation("TodoItems");
- });
-
- modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.UserSession", b =>
- {
- b.Navigation("PushNotificationSubscription");
- });
-#pragma warning restore 612, 618
- }
-}
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.cs
deleted file mode 100644
index 3a1c66c6c3..0000000000
--- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250109120517_InitialMigration.cs
+++ /dev/null
@@ -1,467 +0,0 @@
-#nullable disable
-
-#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
-
-namespace Boilerplate.Server.Api.Data.Migrations;
-
-///
-public partial class InitialMigration : Migration
-{
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Categories",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", maxLength: 64, nullable: false),
- Color = table.Column(type: "TEXT", nullable: true),
- ConcurrencyStamp = table.Column(type: "BLOB", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Categories", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "DataProtectionKeys",
- columns: table => new
- {
- Id = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- FriendlyName = table.Column(type: "TEXT", nullable: true),
- Xml = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_DataProtectionKeys", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "Roles",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", maxLength: 50, nullable: true),
- NormalizedName = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- ConcurrencyStamp = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Roles", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "Users",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- FullName = table.Column(type: "TEXT", nullable: true),
- Gender = table.Column(type: "INTEGER", nullable: true),
- BirthDate = table.Column(type: "INTEGER", nullable: true),
- ProfileImageName = table.Column(type: "TEXT", nullable: true),
- EmailTokenRequestedOn = table.Column(type: "INTEGER", nullable: true),
- PhoneNumberTokenRequestedOn = table.Column(type: "INTEGER", nullable: true),
- ResetPasswordTokenRequestedOn = table.Column(type: "INTEGER", nullable: true),
- TwoFactorTokenRequestedOn = table.Column(type: "INTEGER", nullable: true),
- OtpRequestedOn = table.Column(type: "INTEGER", nullable: true),
- ElevatedAccessTokenRequestedOn = table.Column(type: "INTEGER", nullable: true),
- UserName = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- NormalizedUserName = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- Email = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- NormalizedEmail = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- EmailConfirmed = table.Column(type: "INTEGER", nullable: false),
- PasswordHash = table.Column(type: "TEXT", nullable: true),
- SecurityStamp = table.Column(type: "TEXT", nullable: true),
- ConcurrencyStamp = table.Column(type: "TEXT", nullable: true),
- PhoneNumber = table.Column(type: "TEXT", nullable: true),
- PhoneNumberConfirmed = table.Column(type: "INTEGER", nullable: false),
- TwoFactorEnabled = table.Column(type: "INTEGER", nullable: false),
- LockoutEnd = table.Column(type: "INTEGER", nullable: true),
- LockoutEnabled = table.Column(type: "INTEGER", nullable: false),
- AccessFailedCount = table.Column(type: "INTEGER", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Users", x => x.Id);
- });
-
- migrationBuilder.CreateTable(
- name: "Products",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", maxLength: 64, nullable: false),
- Price = table.Column(type: "TEXT", nullable: false),
- Description = table.Column(type: "TEXT", maxLength: 512, nullable: true),
- CreatedOn = table.Column(type: "INTEGER", nullable: false),
- CategoryId = table.Column(type: "TEXT", nullable: false),
- ConcurrencyStamp = table.Column(type: "BLOB", nullable: false),
- ImageFileName = table.Column(type: "TEXT", nullable: true),
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Products", x => x.Id);
- table.ForeignKey(
- name: "FK_Products_Categories_CategoryId",
- column: x => x.CategoryId,
- principalTable: "Categories",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "RoleClaims",
- columns: table => new
- {
- Id = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- RoleId = table.Column(type: "TEXT", nullable: false),
- ClaimType = table.Column(type: "TEXT", nullable: true),
- ClaimValue = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_RoleClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_RoleClaims_Roles_RoleId",
- column: x => x.RoleId,
- principalTable: "Roles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "TodoItems",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- Title = table.Column(type: "TEXT", nullable: false),
- Date = table.Column(type: "INTEGER", nullable: false),
- IsDone = table.Column(type: "INTEGER", nullable: false),
- UserId = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_TodoItems", x => x.Id);
- table.ForeignKey(
- name: "FK_TodoItems_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "UserClaims",
- columns: table => new
- {
- Id = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- UserId = table.Column(type: "TEXT", nullable: false),
- ClaimType = table.Column(type: "TEXT", nullable: true),
- ClaimValue = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_UserClaims", x => x.Id);
- table.ForeignKey(
- name: "FK_UserClaims_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "UserLogins",
- columns: table => new
- {
- LoginProvider = table.Column(type: "TEXT", nullable: false),
- ProviderKey = table.Column(type: "TEXT", nullable: false),
- ProviderDisplayName = table.Column(type: "TEXT", nullable: true),
- UserId = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_UserLogins", x => new { x.LoginProvider, x.ProviderKey });
- table.ForeignKey(
- name: "FK_UserLogins_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "UserRoles",
- columns: table => new
- {
- UserId = table.Column(type: "TEXT", nullable: false),
- RoleId = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_UserRoles", x => new { x.UserId, x.RoleId });
- table.ForeignKey(
- name: "FK_UserRoles_Roles_RoleId",
- column: x => x.RoleId,
- principalTable: "Roles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- table.ForeignKey(
- name: "FK_UserRoles_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "UserSessions",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- IP = table.Column(type: "TEXT", nullable: true),
- DeviceInfo = table.Column(type: "TEXT", nullable: true),
- Address = table.Column(type: "TEXT", nullable: true),
- Privileged = table.Column(type: "INTEGER", nullable: false),
- StartedOn = table.Column(type: "INTEGER", nullable: false),
- RenewedOn = table.Column(type: "INTEGER", nullable: true),
- UserId = table.Column(type: "TEXT", nullable: false),
- SignalRConnectionId = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_UserSessions", x => x.Id);
- table.ForeignKey(
- name: "FK_UserSessions_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "UserTokens",
- columns: table => new
- {
- UserId = table.Column(type: "TEXT", nullable: false),
- LoginProvider = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", nullable: false),
- Value = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_UserTokens", x => new { x.UserId, x.LoginProvider, x.Name });
- table.ForeignKey(
- name: "FK_UserTokens_Users_UserId",
- column: x => x.UserId,
- principalTable: "Users",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(
- name: "PushNotificationSubscriptions",
- columns: table => new
- {
- DeviceId = table.Column(type: "TEXT", nullable: false),
- Platform = table.Column(type: "TEXT", nullable: false),
- PushChannel = table.Column(type: "TEXT", nullable: false),
- P256dh = table.Column(type: "TEXT", nullable: true),
- Auth = table.Column(type: "TEXT", nullable: true),
- Endpoint = table.Column(type: "TEXT", nullable: true),
- UserSessionId = table.Column(type: "TEXT", nullable: true),
- Tags = table.Column(type: "TEXT", nullable: false),
- ExpirationTime = table.Column(type: "INTEGER", nullable: false),
- RenewedOn = table.Column(type: "INTEGER", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_PushNotificationSubscriptions", x => x.DeviceId);
- table.ForeignKey(
- name: "FK_PushNotificationSubscriptions_UserSessions_UserSessionId",
- column: x => x.UserSessionId,
- principalTable: "UserSessions",
- principalColumn: "Id",
- onDelete: ReferentialAction.SetNull);
- });
-
- migrationBuilder.InsertData(
- table: "Categories",
- columns: new[] { "Id", "Color", "ConcurrencyStamp", "Name" },
- values: new object[,]
- {
- { new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), "#FFCD56", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "Ford" },
- { new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), "#FF6384", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "Nissan" },
- { new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), "#4BC0C0", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "Benz" },
- { new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"), "#2B88D8", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "Tesla" },
- { new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), "#FF9124", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "BMW" }
- });
-
- migrationBuilder.InsertData(
- table: "Users",
- columns: new[] { "Id", "AccessFailedCount", "BirthDate", "ConcurrencyStamp", "ElevatedAccessTokenRequestedOn", "Email", "EmailConfirmed", "EmailTokenRequestedOn", "FullName", "Gender", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "OtpRequestedOn", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "PhoneNumberTokenRequestedOn", "ProfileImageName", "ResetPasswordTokenRequestedOn", "SecurityStamp", "TwoFactorEnabled", "TwoFactorTokenRequestedOn", "UserName" },
- values: new object[] { new Guid("8ff71671-a1d6-4f97-abb9-d87d7b47d6e7"), 0, 1306790461440000000L, "315e1a26-5b3a-4544-8e91-2760cd28e231", null, "test@bitplatform.dev", true, 1306790461440000000L, "Boilerplate test account", 0, true, null, "TEST@BITPLATFORM.DEV", "TEST", null, "AQAAAAIAAYagAAAAEP0v3wxkdWtMkHA3Pp5/JfS+42/Qto9G05p2mta6dncSK37hPxEHa3PGE4aqN30Aag==", "+31684207362", true, null, null, null, "959ff4a9-4b07-4cc1-8141-c5fc033daf83", false, null, "test" });
-
- migrationBuilder.InsertData(
- table: "Products",
- columns: new[] { "Id", "CategoryId", "ConcurrencyStamp", "CreatedOn", "Description", "Name", "Price", "ImageFileName" },
- values: new object[,]
- {
- { new Guid("01d223a3-182d-406a-9722-19dab083f96e"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306466648064000000L, "A powerful, sporty variant of the BMW 5 Series", "M550i", 77790m, null },
- { new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e1"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306413563904000000L, "Luxury crossover SUV that combines cutting-edge technology", "IX", 87000m, null },
- { new Guid("362a6638-0031-485d-825f-e8aeae63a334"), new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306422411264000000L, "Funky-looking subcompact crossover SUV", "Juke", 28100m, null },
- { new Guid("43a82ec1-aab6-445f-83af-a85028417cf7"), new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306431258624000000L, "Raptor is a SCORE off-road trophy truck living in a asphalt world", "Raptor", 53205m, null },
- { new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d5"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306422411264000000L, "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines", "X7", 77980m, null },
- { new Guid("59eea437-bdf2-4c11-b262-06643b253288"), new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306422411264000000L, "Ultra-rare and powerful sports car", "R50", 2000000m, null },
- { new Guid("64a2616f-3af6-4248-86cf-4a605095a644"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306457800704000000L, "Luxurious and powerful sedan that combines elegant design with impressive performance", "540i", 60945m, null },
- { new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb3c"), new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306457800704000000L, "A perfectly adequate family sedan with sharp looks", "Altima", 24550m, null },
- { new Guid("840ba759-bde9-4821-b49b-c981c082bb96"), new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306457800704000000L, "Finishes near the top of our luxury electric car rankings", "Model S", 135000m, null },
- { new Guid("840e113b-5074-4b1c-86bd-e9affb659412"), new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306448953344000000L, "Heart-pumping acceleration, long drive range", "Model X", 138890m, null },
- { new Guid("8629931e-e26e-4885-b561-e447197d4b69"), new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306466648064000000L, "Subcompact luxury crossover SUV", "H247", 54950m, null },
- { new Guid("96c73b9c-03df-4f70-ac8d-75c32b89881a"), new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306466648064000000L, "Rapid acceleration and dynamic handling", "Model 3", 61990m, null },
- { new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d4"), new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306466648064000000L, "The Ford Mustang is ranked #1 in Sports Cars", "Mustang", 27155m, null },
- { new Guid("a1c1987d-ee6c-41ad-9647-18de4504303a"), new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306457800704000000L, "Battery-electric full-size luxury liftback", "V297", 103360m, null },
- { new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b4"), new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306457800704000000L, "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer", "GT", 500000m, null },
- { new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb0"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306448953344000000L, "Combines class, spaciousness, and a well-built cabin", "530e", 56545m, null },
- { new Guid("b2db9074-a0a9-4054-87e2-206b7a55c793"), new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306422411264000000L, "Extensive driving range, lots of standard safety features", "Model Y", 67790m, null },
- { new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca25"), new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306466648064000000L, "A powerful convertible sports car", "Roadster", 42800m, null },
- { new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf99"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306431258624000000L, "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine", "M850i", 100045m, null },
- { new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f64"), new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306440105984000000L, "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech", "GT-R", 113540m, null },
- { new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7558"), new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306422411264000000L, "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.", "Maverick", 22470m, null },
- { new Guid("f75325c8-a213-470b-ab93-4677ca4caeef"), new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306440105984000000L, "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.", "Ranger", 25000m, null },
- { new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec502"), new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, 1306440105984000000L, "Zippy and fuel-efficient powertrain, and sure-footed handling", "530i", 55195m, null }
- });
-
- migrationBuilder.CreateIndex(
- name: "IX_Categories_Name",
- table: "Categories",
- column: "Name",
- unique: true);
-
- migrationBuilder.CreateIndex(
- name: "IX_Products_CategoryId",
- table: "Products",
- column: "CategoryId");
-
- migrationBuilder.CreateIndex(
- name: "IX_Products_Name",
- table: "Products",
- column: "Name",
- unique: true);
-
- migrationBuilder.CreateIndex(
- name: "IX_PushNotificationSubscriptions_UserSessionId",
- table: "PushNotificationSubscriptions",
- column: "UserSessionId",
- unique: true,
- filter: "[UserSessionId] IS NOT NULL");
-
- migrationBuilder.CreateIndex(
- name: "IX_RoleClaims_RoleId",
- table: "RoleClaims",
- column: "RoleId");
-
- migrationBuilder.CreateIndex(
- name: "RoleNameIndex",
- table: "Roles",
- column: "NormalizedName",
- unique: true);
-
- migrationBuilder.CreateIndex(
- name: "IX_TodoItems_UserId",
- table: "TodoItems",
- column: "UserId");
-
- migrationBuilder.CreateIndex(
- name: "IX_UserClaims_UserId",
- table: "UserClaims",
- column: "UserId");
-
- migrationBuilder.CreateIndex(
- name: "IX_UserLogins_UserId",
- table: "UserLogins",
- column: "UserId");
-
- migrationBuilder.CreateIndex(
- name: "IX_UserRoles_RoleId",
- table: "UserRoles",
- column: "RoleId");
-
- migrationBuilder.CreateIndex(
- name: "EmailIndex",
- table: "Users",
- column: "NormalizedEmail");
-
- migrationBuilder.CreateIndex(
- name: "IX_Users_Email",
- table: "Users",
- column: "Email",
- unique: true,
- filter: "[Email] IS NOT NULL");
-
- migrationBuilder.CreateIndex(
- name: "IX_Users_PhoneNumber",
- table: "Users",
- column: "PhoneNumber",
- unique: true,
- filter: "[PhoneNumber] IS NOT NULL");
-
- migrationBuilder.CreateIndex(
- name: "UserNameIndex",
- table: "Users",
- column: "NormalizedUserName",
- unique: true);
-
- migrationBuilder.CreateIndex(
- name: "IX_UserSessions_UserId",
- table: "UserSessions",
- column: "UserId");
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "DataProtectionKeys");
-
- migrationBuilder.DropTable(
- name: "Products");
-
- migrationBuilder.DropTable(
- name: "PushNotificationSubscriptions");
-
- migrationBuilder.DropTable(
- name: "RoleClaims");
-
- migrationBuilder.DropTable(
- name: "TodoItems");
-
- migrationBuilder.DropTable(
- name: "UserClaims");
-
- migrationBuilder.DropTable(
- name: "UserLogins");
-
- migrationBuilder.DropTable(
- name: "UserRoles");
-
- migrationBuilder.DropTable(
- name: "UserTokens");
-
- migrationBuilder.DropTable(
- name: "Categories");
-
- migrationBuilder.DropTable(
- name: "UserSessions");
-
- migrationBuilder.DropTable(
- name: "Roles");
-
- migrationBuilder.DropTable(
- name: "Users");
- }
-}
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250217191441_InitialMigration.Designer.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250217191441_InitialMigration.Designer.cs
new file mode 100644
index 0000000000..02638e86ad
--- /dev/null
+++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250217191441_InitialMigration.Designer.cs
@@ -0,0 +1,2136 @@
+//
+using Microsoft.EntityFrameworkCore.Infrastructure;
+
+#nullable disable
+
+namespace Boilerplate.Server.Api.Data.Migrations;
+
+[DbContext(typeof(AppDbContext))]
+[Migration("20250217191441_InitialMigration")]
+partial class InitialMigration
+{
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "9.0.2");
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.Categories.Category", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("Color")
+ .HasColumnType("TEXT");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("BLOB");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.ToTable("Categories");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ Color = "#FFCD56",
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ Name = "Ford"
+ },
+ new
+ {
+ Id = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ Color = "#FF6384",
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ Name = "Nissan"
+ },
+ new
+ {
+ Id = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ Color = "#4BC0C0",
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ Name = "Benz"
+ },
+ new
+ {
+ Id = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ Color = "#FF9124",
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ Name = "BMW"
+ },
+ new
+ {
+ Id = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ Color = "#2B88D8",
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ Name = "Tesla"
+ });
+ });
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.Role", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .HasMaxLength(50)
+ .HasColumnType("TEXT");
+
+ b.Property("NormalizedName")
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasDatabaseName("RoleNameIndex");
+
+ b.ToTable("Roles", (string)null);
+ });
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("INTEGER");
+
+ b.Property("BirthDate")
+ .HasColumnType("INTEGER");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("TEXT");
+
+ b.Property("ElevatedAccessTokenRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("Email")
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("INTEGER");
+
+ b.Property("EmailTokenRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("FullName")
+ .HasColumnType("TEXT");
+
+ b.Property("Gender")
+ .HasColumnType("INTEGER");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("INTEGER");
+
+ b.Property("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("OtpRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("PasswordHash")
+ .HasColumnType("TEXT");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("TEXT");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("INTEGER");
+
+ b.Property("PhoneNumberTokenRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("ProfileImageName")
+ .HasColumnType("TEXT");
+
+ b.Property("ResetPasswordTokenRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("SecurityStamp")
+ .HasColumnType("TEXT");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("INTEGER");
+
+ b.Property("TwoFactorTokenRequestedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Email")
+ .IsUnique()
+ .HasFilter("[Email] IS NOT NULL");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex");
+
+ b.HasIndex("PhoneNumber")
+ .IsUnique()
+ .HasFilter("[PhoneNumber] IS NOT NULL");
+
+ b.ToTable("Users", (string)null);
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("8ff71671-a1d6-4f97-abb9-d87d7b47d6e7"),
+ AccessFailedCount = 0,
+ BirthDate = 1306790461440000000L,
+ ConcurrencyStamp = "315e1a26-5b3a-4544-8e91-2760cd28e231",
+ Email = "test@bitplatform.dev",
+ EmailConfirmed = true,
+ EmailTokenRequestedOn = 1306790461440000000L,
+ FullName = "Boilerplate test account",
+ Gender = 0,
+ LockoutEnabled = true,
+ NormalizedEmail = "TEST@BITPLATFORM.DEV",
+ NormalizedUserName = "TEST",
+ PasswordHash = "AQAAAAIAAYagAAAAEP0v3wxkdWtMkHA3Pp5/JfS+42/Qto9G05p2mta6dncSK37hPxEHa3PGE4aqN30Aag==",
+ PhoneNumber = "+31684207362",
+ PhoneNumberConfirmed = true,
+ SecurityStamp = "959ff4a9-4b07-4cc1-8141-c5fc033daf83",
+ TwoFactorEnabled = false,
+ UserName = "test"
+ });
+ });
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.Identity.UserSession", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("Address")
+ .HasColumnType("TEXT");
+
+ b.Property("DeviceInfo")
+ .HasColumnType("TEXT");
+
+ b.Property("IP")
+ .HasColumnType("TEXT");
+
+ b.Property("Privileged")
+ .HasColumnType("INTEGER");
+
+ b.Property("RenewedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("SignalRConnectionId")
+ .HasColumnType("TEXT");
+
+ b.Property("StartedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("UserId")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("UserSessions");
+ });
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.Products.Product", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("CategoryId")
+ .HasColumnType("TEXT");
+
+ b.Property("ConcurrencyStamp")
+ .IsRequired()
+ .HasColumnType("BLOB");
+
+ b.Property("CreatedOn")
+ .HasColumnType("INTEGER");
+
+ b.Property("Description")
+ .HasMaxLength(512)
+ .HasColumnType("TEXT");
+
+ b.Property("ImageFileName")
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(64)
+ .HasColumnType("TEXT");
+
+ b.Property("Price")
+ .HasColumnType("TEXT");
+
+ b.Property("ShortId")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CategoryId");
+
+ b.HasIndex("Name")
+ .IsUnique();
+
+ b.HasIndex("ShortId")
+ .IsUnique();
+
+ b.ToTable("Products");
+
+ b.HasData(
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d1"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 1",
+ Price = 27155m,
+ ShortId = 9024
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b1"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 1",
+ Price = 500000m,
+ ShortId = 9025
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee1"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 1",
+ Price = 25000m,
+ ShortId = 9026
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf1"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 1",
+ Price = 53205m,
+ ShortId = 9027
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7551"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 1",
+ Price = 22470m,
+ ShortId = 9028
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca21"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 1",
+ Price = 42800m,
+ ShortId = 9029
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb31"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 1",
+ Price = 24550m,
+ ShortId = 9030
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f61"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 1",
+ Price = 113540m,
+ ShortId = 9031
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a331"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 1",
+ Price = 28100m,
+ ShortId = 9032
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b61"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 1",
+ Price = 54950m,
+ ShortId = 9033
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043031"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 1",
+ Price = 103360m,
+ ShortId = 9034
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253281"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 1",
+ Price = 2000000m,
+ ShortId = 9035
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f961"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 1",
+ Price = 77790m,
+ ShortId = 9036
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a641"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 1",
+ Price = 60945m,
+ ShortId = 9037
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb1"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 1",
+ Price = 56545m,
+ ShortId = 9038
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec501"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 1",
+ Price = 55195m,
+ ShortId = 9039
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf91"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 1",
+ Price = 100045m,
+ ShortId = 9040
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d1"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 1",
+ Price = 77980m,
+ ShortId = 9041
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e1"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 1",
+ Price = 87000m,
+ ShortId = 9042
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898811"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 1",
+ Price = 61990m,
+ ShortId = 9043
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb91"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 1",
+ Price = 135000m,
+ ShortId = 9044
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659411"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 1",
+ Price = 138890m,
+ ShortId = 9045
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c791"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 1",
+ Price = 67790m,
+ ShortId = 9046
+ },
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d2"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 2",
+ Price = 27155m,
+ ShortId = 9047
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b2"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 2",
+ Price = 500000m,
+ ShortId = 9048
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee2"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 2",
+ Price = 25000m,
+ ShortId = 9049
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf2"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 2",
+ Price = 53205m,
+ ShortId = 9050
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7552"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 2",
+ Price = 22470m,
+ ShortId = 9051
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca22"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 2",
+ Price = 42800m,
+ ShortId = 9052
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb32"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 2",
+ Price = 24550m,
+ ShortId = 9053
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f62"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 2",
+ Price = 113540m,
+ ShortId = 9054
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a332"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 2",
+ Price = 28100m,
+ ShortId = 9055
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b62"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 2",
+ Price = 54950m,
+ ShortId = 9056
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043032"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 2",
+ Price = 103360m,
+ ShortId = 9057
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253282"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 2",
+ Price = 2000000m,
+ ShortId = 9058
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f962"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 2",
+ Price = 77790m,
+ ShortId = 9059
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a642"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 2",
+ Price = 60945m,
+ ShortId = 9060
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb2"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 2",
+ Price = 56545m,
+ ShortId = 9061
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec502"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 2",
+ Price = 55195m,
+ ShortId = 9062
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf92"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 2",
+ Price = 100045m,
+ ShortId = 9063
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d2"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 2",
+ Price = 77980m,
+ ShortId = 9064
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e2"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 2",
+ Price = 87000m,
+ ShortId = 9065
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898812"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 2",
+ Price = 61990m,
+ ShortId = 9066
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb92"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 2",
+ Price = 135000m,
+ ShortId = 9067
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659412"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 2",
+ Price = 138890m,
+ ShortId = 9068
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c792"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 2",
+ Price = 67790m,
+ ShortId = 9069
+ },
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d3"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 3",
+ Price = 27155m,
+ ShortId = 9070
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b3"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 3",
+ Price = 500000m,
+ ShortId = 9071
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee3"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 3",
+ Price = 25000m,
+ ShortId = 9072
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf3"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 3",
+ Price = 53205m,
+ ShortId = 9073
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7553"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 3",
+ Price = 22470m,
+ ShortId = 9074
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca23"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 3",
+ Price = 42800m,
+ ShortId = 9075
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb33"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 3",
+ Price = 24550m,
+ ShortId = 9076
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f63"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 3",
+ Price = 113540m,
+ ShortId = 9077
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a333"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 3",
+ Price = 28100m,
+ ShortId = 9078
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b63"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 3",
+ Price = 54950m,
+ ShortId = 9079
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043033"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 3",
+ Price = 103360m,
+ ShortId = 9080
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253283"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 3",
+ Price = 2000000m,
+ ShortId = 9081
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f963"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 3",
+ Price = 77790m,
+ ShortId = 9082
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a643"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 3",
+ Price = 60945m,
+ ShortId = 9083
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb3"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 3",
+ Price = 56545m,
+ ShortId = 9084
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec503"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 3",
+ Price = 55195m,
+ ShortId = 9085
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf93"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 3",
+ Price = 100045m,
+ ShortId = 9086
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d3"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 3",
+ Price = 77980m,
+ ShortId = 9087
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e3"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 3",
+ Price = 87000m,
+ ShortId = 9088
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898813"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 3",
+ Price = 61990m,
+ ShortId = 9089
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb93"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 3",
+ Price = 135000m,
+ ShortId = 9090
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659413"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 3",
+ Price = 138890m,
+ ShortId = 9091
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c793"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 3",
+ Price = 67790m,
+ ShortId = 9092
+ },
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d4"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 4",
+ Price = 27155m,
+ ShortId = 9093
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b4"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 4",
+ Price = 500000m,
+ ShortId = 9094
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee4"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 4",
+ Price = 25000m,
+ ShortId = 9095
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf4"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 4",
+ Price = 53205m,
+ ShortId = 9096
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7554"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 4",
+ Price = 22470m,
+ ShortId = 9097
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca24"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 4",
+ Price = 42800m,
+ ShortId = 9098
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb34"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 4",
+ Price = 24550m,
+ ShortId = 9099
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f64"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 4",
+ Price = 113540m,
+ ShortId = 9100
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a334"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 4",
+ Price = 28100m,
+ ShortId = 9101
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b64"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 4",
+ Price = 54950m,
+ ShortId = 9102
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043034"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 4",
+ Price = 103360m,
+ ShortId = 9103
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253284"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 4",
+ Price = 2000000m,
+ ShortId = 9104
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f964"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 4",
+ Price = 77790m,
+ ShortId = 9105
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a644"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 4",
+ Price = 60945m,
+ ShortId = 9106
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb4"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 4",
+ Price = 56545m,
+ ShortId = 9107
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec504"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 4",
+ Price = 55195m,
+ ShortId = 9108
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf94"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 4",
+ Price = 100045m,
+ ShortId = 9109
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d4"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 4",
+ Price = 77980m,
+ ShortId = 9110
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e4"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 4",
+ Price = 87000m,
+ ShortId = 9111
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898814"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 4",
+ Price = 61990m,
+ ShortId = 9112
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb94"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 4",
+ Price = 135000m,
+ ShortId = 9113
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659414"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 4",
+ Price = 138890m,
+ ShortId = 9114
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c794"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 4",
+ Price = 67790m,
+ ShortId = 9115
+ },
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d5"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 5",
+ Price = 27155m,
+ ShortId = 9116
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b5"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 5",
+ Price = 500000m,
+ ShortId = 9117
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee5"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 5",
+ Price = 25000m,
+ ShortId = 9118
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf5"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 5",
+ Price = 53205m,
+ ShortId = 9119
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7555"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 5",
+ Price = 22470m,
+ ShortId = 9120
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca25"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 5",
+ Price = 42800m,
+ ShortId = 9121
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb35"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 5",
+ Price = 24550m,
+ ShortId = 9122
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f65"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 5",
+ Price = 113540m,
+ ShortId = 9123
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a335"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 5",
+ Price = 28100m,
+ ShortId = 9124
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b65"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 5",
+ Price = 54950m,
+ ShortId = 9125
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043035"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 5",
+ Price = 103360m,
+ ShortId = 9126
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253285"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 5",
+ Price = 2000000m,
+ ShortId = 9127
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f965"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 5",
+ Price = 77790m,
+ ShortId = 9128
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a645"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 5",
+ Price = 60945m,
+ ShortId = 9129
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb5"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 5",
+ Price = 56545m,
+ ShortId = 9130
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec505"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 5",
+ Price = 55195m,
+ ShortId = 9131
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf95"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 5",
+ Price = 100045m,
+ ShortId = 9132
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d5"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 5",
+ Price = 77980m,
+ ShortId = 9133
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e5"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 5",
+ Price = 87000m,
+ ShortId = 9134
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898815"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 5",
+ Price = 61990m,
+ ShortId = 9135
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb95"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 5",
+ Price = 135000m,
+ ShortId = 9136
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659415"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 5",
+ Price = 138890m,
+ ShortId = 9137
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c795"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 5",
+ Price = 67790m,
+ ShortId = 9138
+ },
+ new
+ {
+ Id = new Guid("9a59dda2-7b12-4cc1-9658-d2586eef91d6"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "The Ford Mustang is ranked #1 in Sports Cars",
+ Name = "Mustang - 6",
+ Price = 27155m,
+ ShortId = 9139
+ },
+ new
+ {
+ Id = new Guid("a42914e2-92da-4f0b-aab0-b9572c9671b6"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "The Ford GT is a mid-engine two-seater sports car manufactured and marketed by American automobile manufacturer",
+ Name = "GT - 6",
+ Price = 500000m,
+ ShortId = 9140
+ },
+ new
+ {
+ Id = new Guid("f75325c8-a213-470b-ab93-4677ca4caee6"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Ford Ranger is a nameplate that has been used on multiple model lines of pickup trucks sold by Ford worldwide.",
+ Name = "Ranger - 6",
+ Price = 25000m,
+ ShortId = 9141
+ },
+ new
+ {
+ Id = new Guid("43a82ec1-aab6-445f-83af-a85028417cf6"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "Raptor is a SCORE off-road trophy truck living in a asphalt world",
+ Name = "Raptor - 6",
+ Price = 53205m,
+ ShortId = 9142
+ },
+ new
+ {
+ Id = new Guid("f01b32bb-eccd-43be-aaf3-3c788a7d7556"),
+ CategoryId = new Guid("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "The Ford Maverick is a compact pickup truck produced by Ford Motor Company.",
+ Name = "Maverick - 6",
+ Price = 22470m,
+ ShortId = 9143
+ },
+ new
+ {
+ Id = new Guid("d53bb159-f4f9-493a-b4dc-215fd765ca26"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful convertible sports car",
+ Name = "Roadster - 6",
+ Price = 42800m,
+ ShortId = 9144
+ },
+ new
+ {
+ Id = new Guid("74bb268f-18cf-45ec-9f2f-30b34b18fb36"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "A perfectly adequate family sedan with sharp looks",
+ Name = "Altima - 6",
+ Price = 24550m,
+ ShortId = 9145
+ },
+ new
+ {
+ Id = new Guid("eb787e1a-7ba8-4708-924b-9f7964fa0f66"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Legendary supercar with AWD, 4 seats, a powerful V6 engine and the latest tech",
+ Name = "GT-R - 6",
+ Price = 113540m,
+ ShortId = 9146
+ },
+ new
+ {
+ Id = new Guid("362a6638-0031-485d-825f-e8aeae63a336"),
+ CategoryId = new Guid("582b8c19-0709-4dae-b7a6-fa0e704dad3c"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A new smart SUV",
+ Name = "Juke - 6",
+ Price = 28100m,
+ ShortId = 9147
+ },
+ new
+ {
+ Id = new Guid("8629931e-e26e-4885-b561-e447197d4b66"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Subcompact luxury crossover SUV",
+ Name = "H247 - 6",
+ Price = 54950m,
+ ShortId = 9148
+ },
+ new
+ {
+ Id = new Guid("a1c1987d-ee6c-41ad-9647-18de45043036"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Battery-electric full-size luxury liftback",
+ Name = "V297 - 6",
+ Price = 103360m,
+ ShortId = 9149
+ },
+ new
+ {
+ Id = new Guid("59eea437-bdf2-4c11-b262-06643b253286"),
+ CategoryId = new Guid("6fae78f3-b067-40fb-a2d5-9c8dd5eb2e08"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Ultra-rare and powerful sports car",
+ Name = "R50 - 6",
+ Price = 2000000m,
+ ShortId = 9150
+ },
+ new
+ {
+ Id = new Guid("01d223a3-182d-406a-9722-19dab083f966"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "A powerful, sporty variant of the BMW 5 Series",
+ Name = "M550i - 6",
+ Price = 77790m,
+ ShortId = 9151
+ },
+ new
+ {
+ Id = new Guid("64a2616f-3af6-4248-86cf-4a605095a646"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Luxurious and powerful sedan that combines elegant design with impressive performance",
+ Name = "540i - 6",
+ Price = 60945m,
+ ShortId = 9152
+ },
+ new
+ {
+ Id = new Guid("ac50dc29-4b7e-4d4d-b23a-4227d91f2bb6"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Combines class, spaciousness, and a well-built cabin",
+ Name = "530e - 6",
+ Price = 56545m,
+ ShortId = 9153
+ },
+ new
+ {
+ Id = new Guid("fb41cc51-9abd-4b45-b0d9-ea8f565ec506"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306440105984000000L,
+ Description = "Zippy and fuel-efficient powertrain, and sure-footed handling",
+ Name = "530i - 6",
+ Price = 55195m,
+ ShortId = 9154
+ },
+ new
+ {
+ Id = new Guid("e159b1ad-12aa-4e02-a39b-d5e4a32eaf96"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306431258624000000L,
+ Description = "A Beastly coupe, powered by a fine-tuned 523-horsepower V8 engine",
+ Name = "M850i - 6",
+ Price = 100045m,
+ ShortId = 9155
+ },
+ new
+ {
+ Id = new Guid("4d9cb0f4-1f32-45d5-8c84-d7f15bc569d6"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "A full-size luxury crossover SUV that combines innovative design, an expansive presence, and a range of powerful engines",
+ Name = "X7 - 6",
+ Price = 77980m,
+ ShortId = 9156
+ },
+ new
+ {
+ Id = new Guid("1b22319e-0a58-471e-82b6-75cd8b9d98e6"),
+ CategoryId = new Guid("ecf0496f-f1e3-4d92-8fe4-0d7fa2b4ffa4"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306413563904000000L,
+ Description = "Luxury crossover SUV that combines cutting-edge technology",
+ Name = "IX - 6",
+ Price = 87000m,
+ ShortId = 9157
+ },
+ new
+ {
+ Id = new Guid("96c73b9c-03df-4f70-ac8d-75c32b898816"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306466648064000000L,
+ Description = "Rapid acceleration and dynamic handling",
+ Name = "Model 3 - 6",
+ Price = 61990m,
+ ShortId = 9158
+ },
+ new
+ {
+ Id = new Guid("840ba759-bde9-4821-b49b-c981c082bb96"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306457800704000000L,
+ Description = "Finishes near the top of our luxury electric car rankings.",
+ Name = "Model S - 6",
+ Price = 135000m,
+ ShortId = 9159
+ },
+ new
+ {
+ Id = new Guid("840e113b-5074-4b1c-86bd-e9affb659416"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306448953344000000L,
+ Description = "Heart-pumping acceleration, long drive range",
+ Name = "Model X - 6",
+ Price = 138890m,
+ ShortId = 9160
+ },
+ new
+ {
+ Id = new Guid("b2db9074-a0a9-4054-87e2-206b7a55c796"),
+ CategoryId = new Guid("747f6d66-7524-40ca-8494-f65e85b5ee5d"),
+ ConcurrencyStamp = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 },
+ CreatedOn = 1306422411264000000L,
+ Description = "Extensive driving range, lots of standard safety features",
+ Name = "Model Y - 6",
+ Price = 67790m,
+ ShortId = 9161
+ });
+ });
+
+ modelBuilder.Entity("Boilerplate.Server.Api.Models.PushNotification.PushNotificationSubscription", b =>
+ {
+ b.Property("DeviceId")
+ .HasColumnType("TEXT");
+
+ b.Property("Auth")
+ .HasColumnType("TEXT");
+
+ b.Property("Endpoint")
+ .HasColumnType("TEXT");
+
+ b.Property("ExpirationTime")
+ .HasColumnType("INTEGER");
+
+ b.Property("P256dh")
+ .HasColumnType("TEXT");
+
+ b.Property("Platform")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("PushChannel")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("RenewedOn")
+ .HasColumnType("INTEGER");
+
+ b.PrimitiveCollection