diff --git a/src/DigitalData.Swagger.MockAPI/Data/ApiContext.cs b/src/DigitalData.Swagger.MockAPI/Data/ApiContext.cs new file mode 100644 index 0000000..ecbe34b --- /dev/null +++ b/src/DigitalData.Swagger.MockAPI/Data/ApiContext.cs @@ -0,0 +1,11 @@ +using DigitalData.Swagger.MockAPI.Dtos; +using Microsoft.EntityFrameworkCore; + +namespace DigitalData.Swagger.MockAPI.Data; + +public class ApiContext(DbContextOptions options) : DbContext(options) +{ + public DbSet Companies { get; set; } + + public DbSet Products { get; set; } +} \ No newline at end of file diff --git a/src/DigitalData.Swagger.MockAPI/Data/DBSeeder.cs b/src/DigitalData.Swagger.MockAPI/Data/DBSeeder.cs new file mode 100644 index 0000000..b6612fe --- /dev/null +++ b/src/DigitalData.Swagger.MockAPI/Data/DBSeeder.cs @@ -0,0 +1,75 @@ +using DigitalData.Swagger.MockAPI.Dtos; +using System; + +namespace DigitalData.Swagger.MockAPI.Data +{ + public class DBSeeder + { + public static void AddCompaniesData(WebApplication app) + { + var scope = app.Services.CreateScope(); + var db = scope.ServiceProvider.GetService(); + + db.Companies.AddRange(new List() + { + new() + { + ID = 1, + Name = "TechCorp", + Size = 500, + Products = new List + { + new() { ID = 1, CompanyID = 1, Name = "Laptop X1", Price = 1200.99m }, + new() { ID = 2, CompanyID = 1, Name = "Smartphone S2", Price = 799.49m } + } + }, + new Company + { + ID = 2, + Name = "AutoWorks", + Size = 300, + Products = new List + { + new Product { ID = 3, CompanyID = 2, Name = "Electric Car E1", Price = 35000m }, + new() { ID = 4, CompanyID = 2, Name = "Hybrid SUV H2", Price = 42000m } + } + }, + new Company + { + ID = 3, + Name = "MediHealth", + Size = 200, + Products = new List + { + new() { ID = 5, CompanyID = 3, Name = "Vitamin Pack V10", Price = 19.99m }, + new() { ID = 6, CompanyID = 3, Name = "Protein Shake P5", Price = 25.49m } + } + }, + new Company + { + ID = 4, + Name = "HomeStyle", + Size = 150, + Products = new List + { + new() { ID = 7, CompanyID = 4, Name = "Smart Blender B3", Price = 89.99m }, + new() { ID = 8, CompanyID = 4, Name = "Air Purifier A1", Price = 149.99m } + } + }, + new Company + { + ID = 5, + Name = "GadgetZone", + Size = 400, + Products = new List + { + new() { ID = 9, CompanyID = 5, Name = "Wireless Earbuds W1", Price = 99.99m }, + new() { ID = 10, CompanyID = 5, Name = "Smart Watch G5", Price = 199.99m } + } + } + }); + + db.SaveChanges(); + } + } +} diff --git a/src/DigitalData.Swagger.MockAPI/DigitalData.Swagger.MockAPI.csproj b/src/DigitalData.Swagger.MockAPI/DigitalData.Swagger.MockAPI.csproj index f271bc1..b21399f 100644 --- a/src/DigitalData.Swagger.MockAPI/DigitalData.Swagger.MockAPI.csproj +++ b/src/DigitalData.Swagger.MockAPI/DigitalData.Swagger.MockAPI.csproj @@ -8,6 +8,7 @@ +