From 67a4e91a1b4b38c09caf864b183ef1dcbaf9e085 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Thu, 30 Jan 2025 00:06:58 +0100 Subject: [PATCH] =?UTF-8?q?feat(ApiDbContext):=20Mit=20Seed=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Data/ApiContext.cs | 11 +++ .../Data/DBSeeder.cs | 75 +++++++++++++++++++ .../DigitalData.Swagger.MockAPI.csproj | 1 + 3 files changed, 87 insertions(+) create mode 100644 src/DigitalData.Swagger.MockAPI/Data/ApiContext.cs create mode 100644 src/DigitalData.Swagger.MockAPI/Data/DBSeeder.cs 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 @@ +