diff --git a/Elwig/Helpers/AppDbContext.cs b/Elwig/Helpers/AppDbContext.cs index 2dec19a..3d2d6ce 100644 --- a/Elwig/Helpers/AppDbContext.cs +++ b/Elwig/Helpers/AppDbContext.cs @@ -10,32 +10,33 @@ using Microsoft.Extensions.Logging; namespace Elwig.Helpers { public class AppDbContext : DbContext { - 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; } - public DbSet Katastralgemeinden { get; set; } - public DbSet Orte { get; set; } - public DbSet Postleitzahlen { get; set; } - public DbSet PlzDestinations { get; set; } - public DbSet PostalDestinations { get; set; } - public DbSet Branches { get; set; } - public DbSet WbKgs { get; set; } - public DbSet WbRde { get; set; } - public DbSet AreaCommitments { get; set; } - public DbSet AreaCommitmentAttributes { get; set; } - public DbSet WineOrigins { get; set; } - public DbSet WineAttributes { get; set; } - public DbSet WineCultivations { get; set; } - public DbSet WineQualities { get; set; } - public DbSet WineVarieties { get; set; } - 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; } + public DbSet Countries { get; private set; } + public DbSet Currencies { get; private set; } + public DbSet Gemeinden { get; private set; } + public DbSet Katastralgemeinden { get; private set; } + public DbSet Orte { get; private set; } + public DbSet Postleitzahlen { get; private set; } + public DbSet PlzDestinations { get; private set; } + public DbSet PostalDestinations { get; private set; } + public DbSet WineOrigins { get; private set; } + public DbSet WineQualityLevels { get; private set; } + public DbSet WineVarieties { get; private set; } + + public DbSet ClientParameters { get; private set; } + public DbSet WbKgs { get; private set; } + public DbSet WbRde { get; private set; } + public DbSet WineAttributes { get; private set; } + public DbSet WineCultivations { get; private set; } + public DbSet Branches { get; private set; } + public DbSet Members { get; private set; } + public DbSet BillingAddresses { get; private set; } + public DbSet AreaCommitments { get; private set; } + public DbSet AreaCommitmentAttributes { get; private set; } + public DbSet Seasons { get; private set; } + public DbSet Deliveries { get; private set; } + public DbSet DeliveryParts { get; private set; } + public DbSet DeliveryPartAttributes { get; private set; } + public DbSet DeliveryPartModifiers { get; private set; } private readonly StreamWriter? LogFile = null; diff --git a/Elwig/Helpers/Validator.cs b/Elwig/Helpers/Validator.cs index e130022..52762bc 100644 --- a/Elwig/Helpers/Validator.cs +++ b/Elwig/Helpers/Validator.cs @@ -67,7 +67,7 @@ namespace Elwig.Helpers { return new(false, "PLZ zu kurz"); } int plz = int.Parse(input.Text); - if (!ctx.Postleitzahlen.Any(p => p.Plz == plz)) { + if (ctx.Postleitzahlen.Find(plz) == null) { return new(false, "Ungültige PLZ"); } return new(true, null); diff --git a/Elwig/Models/AT_Gem.cs b/Elwig/Models/AT_Gem.cs index 6a08b96..5bb1468 100644 --- a/Elwig/Models/AT_Gem.cs +++ b/Elwig/Models/AT_Gem.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models { @@ -9,5 +10,11 @@ namespace Elwig.Models { [Column("name")] public string Name { get; private set; } + + [InverseProperty("Gem")] + public virtual ISet Kgs { get; private set; } + + [InverseProperty("AtGem")] + public virtual WbGem? WbGem { get; private set; } } } diff --git a/Elwig/Models/AT_Kg.cs b/Elwig/Models/AT_Kg.cs index d769701..df52ae3 100644 --- a/Elwig/Models/AT_Kg.cs +++ b/Elwig/Models/AT_Kg.cs @@ -15,5 +15,8 @@ namespace Elwig.Models { [ForeignKey("Gkz")] public virtual AT_Gem Gem { get; private set; } + + [InverseProperty("AtKg")] + public virtual WbKg WbKg { get; private set; } } } diff --git a/Elwig/Models/DeliveryPart.cs b/Elwig/Models/DeliveryPart.cs index 3f7dc7e..157c11e 100644 --- a/Elwig/Models/DeliveryPart.cs +++ b/Elwig/Models/DeliveryPart.cs @@ -45,7 +45,7 @@ namespace Elwig.Models { public string QualId { get; set; } [ForeignKey("QualId")] - public virtual WineQual Quality { get; private set; } + public virtual WineQualLevel Quality { get; private set; } [Column("hkid")] public string HkId { get; set; } diff --git a/Elwig/Models/WbGem.cs b/Elwig/Models/WbGem.cs new file mode 100644 index 0000000..82b2884 --- /dev/null +++ b/Elwig/Models/WbGem.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("wb_gem"), PrimaryKey("Gkz")] + public class WbGem { + [Column("gkz")] + public int Gkz { get; private set; } + + [Column("hkid")] + public string HkId { get; private set; } + + [ForeignKey("Gkz")] + public virtual AT_Gem AtGem { get; private set; } + + [ForeignKey("HkId")] + public virtual WineOrigin Origin { get; private set; } + } +} diff --git a/Elwig/Models/WbGl.cs b/Elwig/Models/WbGl.cs new file mode 100644 index 0000000..00496e3 --- /dev/null +++ b/Elwig/Models/WbGl.cs @@ -0,0 +1,17 @@ +using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Elwig.Models { + [Table("wb_gl"), PrimaryKey("GlNr")] + public class WbGl { + [Column("glnr")] + public int GlNr { get; private set; } + + [Column("name")] + public string Name { get; private set; } + + [InverseProperty("Gl")] + public virtual ISet Kgs { get; private set; } + } +} diff --git a/Elwig/Models/WbKg.cs b/Elwig/Models/WbKg.cs index 6bf9653..138e8bf 100644 --- a/Elwig/Models/WbKg.cs +++ b/Elwig/Models/WbKg.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models { @@ -11,6 +12,18 @@ namespace Elwig.Models { public int? GlNr { get; set; } [ForeignKey("KgNr")] - public virtual AT_Kg Kg { get; private set; } + public virtual AT_Kg AtKg { get; private set; } + + [ForeignKey("GlNr")] + public virtual WbGl Gl { get; private set; } + + [InverseProperty("Kg")] + public virtual ISet Rds { get; private set; } + + [NotMapped] + public WbGem Gem => AtKg.Gem.WbGem; + + [NotMapped] + public WineOrigin Origin => Gem.Origin; } } diff --git a/Elwig/Models/WbRd.cs b/Elwig/Models/WbRd.cs index bd6e504..378287e 100644 --- a/Elwig/Models/WbRd.cs +++ b/Elwig/Models/WbRd.cs @@ -14,6 +14,6 @@ namespace Elwig.Models { public string Name { get; set; } [ForeignKey("KgNr")] - public virtual WbKg WbKg { get; private set; } + public virtual WbKg Kg { get; private set; } } } diff --git a/Elwig/Models/WineOrigin.cs b/Elwig/Models/WineOrigin.cs index 5f16361..291c8ce 100644 --- a/Elwig/Models/WineOrigin.cs +++ b/Elwig/Models/WineOrigin.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models { @@ -18,5 +19,8 @@ namespace Elwig.Models { [Column("blnr")] public int? BlNr { get; private set; } + + [InverseProperty("Origin")] + public virtual ISet Gems { get; private set; } } } diff --git a/Elwig/Models/WineQual.cs b/Elwig/Models/WineQualLevel.cs similarity index 95% rename from Elwig/Models/WineQual.cs rename to Elwig/Models/WineQualLevel.cs index b2caf29..d04fa77 100644 --- a/Elwig/Models/WineQual.cs +++ b/Elwig/Models/WineQualLevel.cs @@ -4,7 +4,7 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Elwig.Models { [Table("wine_quality"), PrimaryKey("QualId")] - public class WineQual { + public class WineQualLevel { [Column("qualid")] public string QualId { get; private set; } diff --git a/Elwig/Windows/AreaComAdminWindow.xaml.cs b/Elwig/Windows/AreaComAdminWindow.xaml.cs index 2a2dcbc..2730698 100644 --- a/Elwig/Windows/AreaComAdminWindow.xaml.cs +++ b/Elwig/Windows/AreaComAdminWindow.xaml.cs @@ -33,7 +33,7 @@ namespace Elwig.Windows { private async void Window_Loaded(object sender, RoutedEventArgs e) { await RefreshContractList(); - KgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList(); + KgInput.ItemsSource = Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToList(); SortInput.ItemsSource = Context.WineVarieties.OrderBy(s => s.Name).ToList(); AttrInput.ItemsSource = Context.WineAttributes.OrderBy(a => a.Name).ToList(); CultInput.ItemsSource = Context.WineCultivations.OrderBy(c => c.Name).ToList(); diff --git a/Elwig/Windows/ClientParamWindow.xaml b/Elwig/Windows/ClientParamWindow.xaml new file mode 100644 index 0000000..cc2ed39 --- /dev/null +++ b/Elwig/Windows/ClientParamWindow.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/Elwig/Windows/ClientParamWindow.xaml.cs b/Elwig/Windows/ClientParamWindow.xaml.cs new file mode 100644 index 0000000..d3c22b4 --- /dev/null +++ b/Elwig/Windows/ClientParamWindow.xaml.cs @@ -0,0 +1,12 @@ + +namespace Elwig.Windows { + public partial class ClientParamWindow : AdministrationWindow { + public ClientParamWindow() { + InitializeComponent(); + } + + protected override void UpdateButtons() { + + } + } +} diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index d61f076..1a8895d 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -36,7 +36,7 @@ namespace Elwig.Windows { private void Window_Loaded(object sender, RoutedEventArgs evt) { ActiveMemberInput.IsChecked = true; BranchInput.ItemsSource = Context.Branches.OrderBy(b => b.Name).ToList(); - DefaultKgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList(); + DefaultKgInput.ItemsSource = Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToList(); } private async Task RefreshMemberList() {