From 0d8f62f4044ee91984f7cb326cb7c34681a8a95e Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 14 Mar 2023 14:08:23 +0100 Subject: [PATCH] Add AreaCommitment area to MemberListWindow --- WGneu/Helpers/AppDbContext.cs | 6 +++--- .../{AreaCommit.cs => AreaCommitment.cs} | 20 +++++++++---------- WGneu/Models/Branch.cs | 4 ++++ WGneu/Models/Contract.cs | 14 ++++++++++--- WGneu/Models/Member.cs | 16 +++++++++------ WGneu/Models/WbKg.cs | 2 +- WGneu/Models/WbRd.cs | 2 +- WGneu/Windows/MemberListWindow.xaml | 6 +++++- WGneu/Windows/MemberListWindow.xaml.cs | 5 +++-- 9 files changed, 48 insertions(+), 27 deletions(-) rename WGneu/Models/{AreaCommit.cs => AreaCommitment.cs} (58%) diff --git a/WGneu/Helpers/AppDbContext.cs b/WGneu/Helpers/AppDbContext.cs index bf1fe9e..674bb25 100644 --- a/WGneu/Helpers/AppDbContext.cs +++ b/WGneu/Helpers/AppDbContext.cs @@ -8,12 +8,12 @@ namespace WGneu.Helpers { public DbSet Gemeinden { get; set; } public DbSet Katastralgemeinden { get; set; } public DbSet Orte { get; set; } - public DbSet Postleitzahlen { get; set; } + public DbSet Postleitzahlen { 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 AreaCommitments { get; set; } public DbSet Contracts { get; set; } public DbSet WineAttributes { get; set; } public DbSet WineCultivations { get; set; } @@ -21,7 +21,7 @@ namespace WGneu.Helpers { public DbSet WineVarieties { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseSqlite("Data Source=\"C:\\Users\\lorenz\\Desktop\\wgtest.sqlite3\"; foreign keys=true"); + optionsBuilder.UseSqlite("Data Source=\"C:\\Users\\lorenz\\Desktop\\wgprod.sqlite3\"; foreign keys=true"); optionsBuilder.UseLazyLoadingProxies(); } } diff --git a/WGneu/Models/AreaCommit.cs b/WGneu/Models/AreaCommitment.cs similarity index 58% rename from WGneu/Models/AreaCommit.cs rename to WGneu/Models/AreaCommitment.cs index d69708e..28cf83e 100644 --- a/WGneu/Models/AreaCommit.cs +++ b/WGneu/Models/AreaCommitment.cs @@ -2,10 +2,10 @@ using System.ComponentModel.DataAnnotations.Schema; namespace WGneu.Models { - [Table("area_commitment"), PrimaryKey("Vnr", "KgNr", "GstNr")] - public class AreaCommit { + [Table("area_commitment"), PrimaryKey("VNr", "KgNr", "GstNr")] + public class AreaCommitment { [Column("vnr")] - public int Vnr { get; set; } + public int VNr { get; set; } [Column("kgnr")] public int KgNr { get; set; } @@ -14,7 +14,7 @@ namespace WGneu.Models { public string? GstNr { get; set; } [Column("rdnr")] - public int RdNr { get; set; } + public int? RdNr { get; set; } [Column("area")] public int Area { get; set; } @@ -28,19 +28,19 @@ namespace WGneu.Models { [Column("cultid")] public string CultId { get; set; } - [ForeignKey("Vnr")] - public virtual Contract Contract { get; set; } + [ForeignKey("VNr")] + public virtual Contract Contract { get; private set; } [ForeignKey("SortId")] - public virtual WineVar WineVar { get; set; } + public virtual WineVar WineVar { get; private set; } [ForeignKey("AttrId")] - public virtual WineAttr WineAttr { get; set; } + public virtual WineAttr WineAttr { get; private set; } [ForeignKey("CultId")] - public virtual WineCult WineCult { get; set; } + public virtual WineCult WineCult { get; private set; } [ForeignKey("KgNr, RdNr")] - public virtual WbRd WbRd { get; set; } + public virtual WbRd? WbRd { get; private set; } } } diff --git a/WGneu/Models/Branch.cs b/WGneu/Models/Branch.cs index 75727c2..3faabd0 100644 --- a/WGneu/Models/Branch.cs +++ b/WGneu/Models/Branch.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace WGneu.Models { @@ -9,5 +10,8 @@ namespace WGneu.Models { [Column("name")] public string Name { get; set; } + + [InverseProperty("Branch")] + public virtual ISet Members { get; private set; } } } diff --git a/WGneu/Models/Contract.cs b/WGneu/Models/Contract.cs index 8f1d627..8f56c92 100644 --- a/WGneu/Models/Contract.cs +++ b/WGneu/Models/Contract.cs @@ -1,11 +1,13 @@ using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; namespace WGneu.Models { - [Table("contract"), PrimaryKey("Vnr")] + [Table("contract"), PrimaryKey("VNr")] public class Contract { [Column("vnr")] - public int Vnr { get; set; } + public int VNr { get; set; } [Column("mgnr")] public int MgNr { get; set; } @@ -17,6 +19,12 @@ namespace WGneu.Models { public int? YearTo { get; set; } [ForeignKey("MgNr")] - public virtual Member Member { get; set; } + public virtual Member Member { get; private set; } + + [InverseProperty("Contract")] + public virtual ISet AreaCommitments { get; private set; } + + [NotMapped] + public int Area => AreaCommitments.Select(a => a.Area).Sum(); } } diff --git a/WGneu/Models/Member.cs b/WGneu/Models/Member.cs index 7c53fb6..2220d52 100644 --- a/WGneu/Models/Member.cs +++ b/WGneu/Models/Member.cs @@ -1,5 +1,6 @@ using Microsoft.EntityFrameworkCore; using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace WGneu.Models { @@ -78,7 +79,7 @@ namespace WGneu.Models { public string CountryCode { get; set; } [Column("postal_dest")] - public string PostalDestId { get; private set; } + public string PostalDestId { get; set; } [Column("address")] public string Address { get; set; } @@ -105,18 +106,21 @@ namespace WGneu.Models { public string? Comment { get; set; } [ForeignKey("PredecessorMgNr")] - public virtual Member? Predecessor { get; set; } + public virtual Member? Predecessor { get; private set; } [ForeignKey("CountryCode")] - public virtual Country Country { get; set; } + public virtual Country Country { get; private set; } [ForeignKey("CountryCode, PostalDestId")] - public virtual PostalDest PostalDest { get; set; } + public virtual PostalDest PostalDest { get; private set; } [ForeignKey("DefaultKgNr")] - public virtual AT_Kg? DefaultKg { get; set; } + public virtual AT_Kg? DefaultKg { get; private set; } [ForeignKey("ZwstId")] - public virtual Branch Branch { get; set; } + public virtual Branch? Branch { get; private set; } + + [InverseProperty("Member")] + public virtual ISet Contracts { get; private set; } } } diff --git a/WGneu/Models/WbKg.cs b/WGneu/Models/WbKg.cs index 8381dc5..072b703 100644 --- a/WGneu/Models/WbKg.cs +++ b/WGneu/Models/WbKg.cs @@ -11,6 +11,6 @@ namespace WGneu.Models { public int? GlNr { get; set; } [ForeignKey("KgNr")] - public virtual AT_Kg Kg { get; set; } + public virtual AT_Kg Kg { get; private set; } } } diff --git a/WGneu/Models/WbRd.cs b/WGneu/Models/WbRd.cs index 651e8da..7209b73 100644 --- a/WGneu/Models/WbRd.cs +++ b/WGneu/Models/WbRd.cs @@ -14,6 +14,6 @@ namespace WGneu.Models { public string Name { get; set; } [ForeignKey("KgNr")] - public virtual WbKg WbKg { get; set; } + public virtual WbKg WbKg { get; private set; } } } diff --git a/WGneu/Windows/MemberListWindow.xaml b/WGneu/Windows/MemberListWindow.xaml index 30d57b6..b57e3bb 100644 --- a/WGneu/Windows/MemberListWindow.xaml +++ b/WGneu/Windows/MemberListWindow.xaml @@ -31,7 +31,7 @@ @@ -296,6 +296,10 @@ Checked="RadioButton_Changed" Unchecked="RadioButton_Changed" HorizontalAlignment="Left" Margin="60,225,0,0" VerticalAlignment="Top" Grid.Column="1" Grid.ColumnSpan="2"/> +