From 3f11a498bc2c1f9759d65e8d55aba6f1d5b1cfd3 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Fri, 28 Apr 2023 13:01:43 +0200 Subject: [PATCH] Update models --- Elwig/Helpers/AppDbContext.cs | 3 +++ Elwig/Models/ClientParam.cs | 13 +++++++++++++ Elwig/Models/DeliveryPart.cs | 14 ++++++++++++++ Elwig/Models/DeliveryPartAttr.cs | 25 +++++++++++++++++++++++++ Elwig/Models/DeliveryPartModifier.cs | 25 +++++++++++++++++++++++++ Elwig/Models/Member.cs | 5 ++--- 6 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 Elwig/Models/ClientParam.cs create mode 100644 Elwig/Models/DeliveryPartAttr.cs create mode 100644 Elwig/Models/DeliveryPartModifier.cs diff --git a/Elwig/Helpers/AppDbContext.cs b/Elwig/Helpers/AppDbContext.cs index 73927b8..7e37a1b 100644 --- a/Elwig/Helpers/AppDbContext.cs +++ b/Elwig/Helpers/AppDbContext.cs @@ -12,6 +12,7 @@ namespace Elwig.Helpers { public DbSet Countries { get; set; } public DbSet Currencies { get; set; } + public DbSet ClientParameters { get; set; } public DbSet Members { get; set; } public DbSet BillingAddresses { get; set; } public DbSet Gemeinden { get; set; } @@ -35,6 +36,8 @@ namespace Elwig.Helpers { public DbSet Seasons { get; set; } public DbSet Deliveries { get; set; } public DbSet DeliveryParts { get; set; } + public DbSet DeliveryPartAttributes { get; set; } + public DbSet DeliveryPartModifiers { get; set; } private readonly StreamWriter? LogFile = null; diff --git a/Elwig/Models/ClientParam.cs b/Elwig/Models/ClientParam.cs new file mode 100644 index 0000000..24fad27 --- /dev/null +++ b/Elwig/Models/ClientParam.cs @@ -0,0 +1,13 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("client_parameter"), PrimaryKey("Param")] + public class ClientParam { + [Column("param")] + public string Param { get; set; } + + [Column("value")] + public string? Value { get; set; } + } +} diff --git a/Elwig/Models/DeliveryPart.cs b/Elwig/Models/DeliveryPart.cs index fe0c4ac..3f7dc7e 100644 --- a/Elwig/Models/DeliveryPart.cs +++ b/Elwig/Models/DeliveryPart.cs @@ -1,6 +1,8 @@ using Elwig.Helpers; using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; namespace Elwig.Models { [Table("delivery_part"), PrimaryKey("Year", "DId", "DPNr")] @@ -92,5 +94,17 @@ namespace Elwig.Models { [Column("comment")] public string? Comment { get; set; } + + [InverseProperty("Part")] + public virtual ISet PartAttributes { get; private set; } + + [NotMapped] + public IEnumerable Attributes => PartAttributes.Select(a => a.Attr); + + [InverseProperty("Part")] + public virtual ISet PartModifiers { get; private set; } + + [NotMapped] + public IEnumerable Modifiiers => PartModifiers.Select(m => m.Modifier); } } diff --git a/Elwig/Models/DeliveryPartAttr.cs b/Elwig/Models/DeliveryPartAttr.cs new file mode 100644 index 0000000..5e3e611 --- /dev/null +++ b/Elwig/Models/DeliveryPartAttr.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("delivery_part_attribute"), PrimaryKey("Year", "DId", "DPNr", "AttrId")] + public class DeliveryPartAttr { + [Column("year")] + public int Year { get; set; } + + [Column("did")] + public int DId { get; set; } + + [Column("dpnr")] + public int DPNr { get; set; } + + [ForeignKey("Year, DId, DPNr")] + public virtual DeliveryPart Part { get; private set; } + + [Column("attrid")] + public string AttrId { get; set; } + + [ForeignKey("AttrId")] + public virtual WineAttr Attr { get; private set; } + } +} diff --git a/Elwig/Models/DeliveryPartModifier.cs b/Elwig/Models/DeliveryPartModifier.cs new file mode 100644 index 0000000..0718afd --- /dev/null +++ b/Elwig/Models/DeliveryPartModifier.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("delivery_part_modifier"), PrimaryKey("Year", "DId", "DPNr", "ModId")] + public class DeliveryPartModifier { + [Column("year")] + public int Year { get; set; } + + [Column("did")] + public int DId { get; set; } + + [Column("dpnr")] + public int DPNr { get; set; } + + [ForeignKey("Year, DId, DPNr")] + public virtual DeliveryPart Part { get; private set; } + + [Column("modid")] + public string ModId { get; set; } + + [ForeignKey("Year, ModId")] + public virtual Modifier Modifier { get; private set; } + } +} diff --git a/Elwig/Models/Member.cs b/Elwig/Models/Member.cs index 667c9fd..9356c21 100644 --- a/Elwig/Models/Member.cs +++ b/Elwig/Models/Member.cs @@ -165,9 +165,8 @@ namespace Elwig.Models { public virtual ISet Contracts { get; private set; } [NotMapped] - public virtual ISet ActiveContracts => Contracts - .Where(c => c.YearFrom <= Utils.CurrentSeason && (c.YearTo ?? int.MaxValue) >= Utils.CurrentSeason) - .ToHashSet(); + public virtual IEnumerable ActiveContracts => Contracts + .Where(c => c.YearFrom <= Utils.CurrentSeason && (c.YearTo ?? int.MaxValue) >= Utils.CurrentSeason); [InverseProperty("Member")] public virtual BillingAddr? BillingAddress { get; private set; }