From a9e52b199b0661b85ca0c7e1318c30742a1168bd Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Tue, 31 Jan 2023 15:55:44 +0300 Subject: Database init --- Models/DataContext.cs | 21 ++++++++++++++++++ Models/Figure.cs | 8 +++++++ Models/SeedData.cs | 56 +++++++++++++++++++++++++++++++++++++++++++++++ Models/UnderwearBundle.cs | 11 ++++++++++ 4 files changed, 96 insertions(+) create mode 100644 Models/DataContext.cs create mode 100644 Models/Figure.cs create mode 100644 Models/SeedData.cs create mode 100644 Models/UnderwearBundle.cs (limited to 'Models') diff --git a/Models/DataContext.cs b/Models/DataContext.cs new file mode 100644 index 0000000..50adf12 --- /dev/null +++ b/Models/DataContext.cs @@ -0,0 +1,21 @@ +using Microsoft.EntityFrameworkCore; + +namespace MyDarling.Models +{ + public class DataContext : DbContext + { + protected readonly IConfiguration configuration; + public DataContext(IConfiguration configuration) + { + this.configuration = configuration; + } + + protected override void OnConfiguring(DbContextOptionsBuilder opts) + { + opts.UseSqlite(configuration.GetConnectionString("MyDarlingDb")); + } + + public DbSet UnderwearBundles => Set(); + public DbSet
Figures => Set
(); + } +} \ No newline at end of file diff --git a/Models/Figure.cs b/Models/Figure.cs new file mode 100644 index 0000000..7ac5b5f --- /dev/null +++ b/Models/Figure.cs @@ -0,0 +1,8 @@ +namespace MyDarling.Models +{ + public class Figure + { + public int Id { get; set; } + public string FilePath { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/Models/SeedData.cs b/Models/SeedData.cs new file mode 100644 index 0000000..1f0ff76 --- /dev/null +++ b/Models/SeedData.cs @@ -0,0 +1,56 @@ +using Microsoft.EntityFrameworkCore; +namespace MyDarling.Models +{ + public static class SeedData + { + public static void SeedDatabase(DataContext context) + { + context.Database.Migrate(); + if (context.UnderwearBundles.Count() == 0) + { + var alice = new UnderwearBundle + { + Name = "Alice", + Figures = new List
+ { + new Figure() + { + FilePath = "/content/0/img/IMG_4896.JPG" + }, + new Figure() + { + FilePath = "/content/0/img/IMG_4902.JPG" + } + }, + Description = @"Комплект из бежевого эластичного кружева с голубой отделкой. + В комплект входит бра, 2 трусиков (на высокой посадке и стандартной на регуляции) и чокер. + Низ можно сделать на выбор стринги/бразильянки.", + Price = 3000 + }; + + var nikki = new UnderwearBundle + { + Name = "Nikki", + Figures = new List
+ { + new Figure() + { + FilePath = "/content/1/img/IMG_4897.JPG" + }, + new Figure() + { + FilePath = "/content/1/img/IMG_4898.JPG" + } + }, + Description = @"Базовый сет из мягкой эластичной сетки. + В комплект входит лиф на косточках и 2 трусиков – бразильянки на высокой посадке и стринги на стандартной посадке с регуляцией. + Доступен в цветах: желтый, черный, бежевый молочный.", + Price = 3800 + }; + + context.UnderwearBundles.AddRange(alice, nikki); + context.SaveChanges(); + } + } + } +} \ No newline at end of file diff --git a/Models/UnderwearBundle.cs b/Models/UnderwearBundle.cs new file mode 100644 index 0000000..5617b07 --- /dev/null +++ b/Models/UnderwearBundle.cs @@ -0,0 +1,11 @@ +namespace MyDarling.Models +{ + public class UnderwearBundle + { + public int Id { get; set; } + public string Name { get; set; } = "My Darling Bundle"; + public ICollection
Figures { get; set; } = new List
(); + public string Description { get; set; } = string.Empty; + public decimal Price { get; set; } + } +} \ No newline at end of file -- cgit v1.2.3