Refactor and Fix PLZ/Ort in MemberListWindow

This commit is contained in:
2023-02-21 15:56:59 +01:00
parent a5d56a7c49
commit 71022c7fbf
14 changed files with 64 additions and 37 deletions

View File

@ -11,5 +11,13 @@
<ui:XamlControlsResources />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>-->
<DataTemplate x:Key="PostalDestComboBoxTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Dest}"/>
<TextBlock Text=" ("/>
<TextBlock Text="{Binding Ort.Name}"/>
<TextBlock Text=")"/>
</StackPanel>
</DataTemplate>
</Application.Resources>
</Application>

View File

@ -25,7 +25,7 @@ namespace WGneu
/// </summary>
public partial class MainWindow : Window
{
private readonly WGContext _context = new WGContext();
private readonly WgContext _context = new WgContext();
private CollectionViewSource countryViewSource;
public MainWindow()
{

View File

@ -21,11 +21,11 @@ namespace WGneu
/// </summary>
public partial class MemberAddWindow : Window
{
private WGContext _context;
private WgContext _context;
private readonly Member member = new Member();
public event EventHandler Event;
public MemberAddWindow(WGContext context)
public MemberAddWindow(WgContext context)
{
this._context = context;

View File

@ -22,11 +22,11 @@ namespace WGneu
/// </summary>
public partial class MemberEditWindow : Window
{
private WGContext _context;
private WgContext _context;
private readonly Member member;
public event EventHandler Event;
public MemberEditWindow(Member member, WGContext context)
public MemberEditWindow(Member member, WgContext context)
{
this._context= context;
this.member = member;

View File

@ -23,8 +23,7 @@
<TextBox x:Name="FamilyName" HorizontalAlignment="Left" Margin="351,129,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="183" IsReadOnly="True"/>
<Button x:Name="Edit_Member" Content="Mitglied bearbeiten" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="130,407,0,20" Click="Edit_Member_Button_Click" IsEnabled="False" FontSize="14" Padding="3,3,3,3"/>
<Button x:Name="Add_Member" Content="Mitglied erstellen" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="10,407,0,20" Click="Add_Member_Button_Click" FontSize="14" Padding="3,3,3,3"/>
<TextBox x:Name="Plz" HorizontalAlignment="Left" Margin="351,191,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<ComboBox x:Name="Ort" HorizontalAlignment="Left" Margin="498,189,0,0" VerticalAlignment="Top" Width="120" ItemTemplate="{Binding Name}"/>
<TextBox x:Name="Plz" HorizontalAlignment="Left" Margin="351,191,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" TextChanged="Plz_TextChanged"/>
<ComboBox x:Name="Ort" HorizontalAlignment="Left" Margin="498,189,0,0" VerticalAlignment="Top" Width="200" ItemTemplate="{StaticResource PostalDestComboBoxTemplate}"/>
</Grid>
</Window>

View File

@ -23,7 +23,7 @@ namespace WGneu
/// </summary>
public partial class MemberListWindow : Window
{
private readonly WGContext _context = new WGContext();
private readonly WgContext _context = new WgContext();
public MemberListWindow()
{
@ -48,16 +48,36 @@ namespace WGneu
GivenName.Text = m.GivenName;
FamilyName.Text = m.FamilyName;
AT_Plz p = m.PostalDest.Plz(_context);
Plz.Text = p.Plz.ToString();
AT_Plz? p = m.PostalDest.Plz(_context);
if (p != null)
{
Plz.Text = p.Plz.ToString();
var o = p.Orte(_context);
Ort.ItemsSource = o;
Ort.
var o = p.Orte(_context);
Ort.ItemsSource = o;
Ort.SelectedItem = p;
}
else
{
Ort.ItemsSource = null;
Ort.SelectedItem = null;
}
Edit_Member.IsEnabled = true;
}
private void Plz_TextChanged(object sender, RoutedEventArgs e)
{
if (Plz.Text.Length == 4 && Plz.Text.All(char.IsDigit))
{
int plz = int.Parse(Plz.Text);
var o = _context.Postleitzahlen.Where(p => p.Plz == plz).ToHashSet();
Ort.ItemsSource = o;
Ort.SelectedItem = null;
}
}
private void Edit_Member_Button_Click(object sender, RoutedEventArgs e)
{
Member m = (Member)MemberList.SelectedItem;

View File

@ -15,6 +15,6 @@ namespace WGneu.Models
public int Gkz { get; set; }
[Column("name")]
public String Name { get; set; }
public string Name { get; set; }
}
}

View File

@ -18,7 +18,7 @@ namespace WGneu.Models
public int Gkz { get; set; }
[Column("name")]
public String Name { get; set; }
public string Name { get; set; }
[ForeignKey("Gkz")]
public virtual AT_Gem Gem { get; set; }

View File

@ -21,7 +21,7 @@ namespace WGneu.Models
public int KgNr { get; set; }
[Column("name")]
public String Name { get; set; }
public string Name { get; set; }
[ForeignKey("Gkz")]
public virtual AT_Gem Gem { get; set; }

View File

@ -19,13 +19,13 @@ namespace WGneu.Models
public int Okz { get; set; }
[Column("country")]
public String CountryCode { get; }
public string CountryCode { get; }
[Column("id")]
public String Id { get; }
public string Id { get; }
[Column("dest")]
public String Dest { get; set; }
public string Dest { get; set; }
[ForeignKey("Okz")]
public virtual AT_Ort Ort { get; set; }
@ -33,9 +33,9 @@ namespace WGneu.Models
[ForeignKey("CountryCode")]
public virtual Country Country { get; set; }
public ISet<AT_Ort> Orte(WGContext ctx)
public ISet<AT_Plz> Orte(WgContext ctx)
{
return ctx.Postleitzahlen.Where(p => p.Plz == Plz).Select(p => p.Ort).ToHashSet();
return ctx.Postleitzahlen.Where(p => p.Plz == Plz).ToHashSet();
}
}
}

View File

@ -12,16 +12,16 @@ namespace WGneu.Models
public class Country
{
[Column("alpha2")]
public String Alpha2 { get; set; }
public string Alpha2 { get; set; }
[Column("alpha3")]
public String Alpha3 { get; set; }
public string Alpha3 { get; set; }
[Column("num")]
public int Num { get; set; }
[Column("name")]
public String Name { get; set; }
public string Name { get; set; }
[Column("is_visible")]
public int IsVisible { get; set; }

View File

@ -15,29 +15,29 @@ namespace WGneu.Models
public int MgNr { get; set; }
[Column("given_name")]
public String GivenName { get; set; }
public string GivenName { get; set; }
[Column("family_name")]
public String FamilyName { get; set; }
public string FamilyName { get; set; }
[Column("zwstid")]
public String Zweigstelle { get; set; }
public string Zweigstelle { get; set; }
[Column("country")]
public String CountryCode { get; set; }
public string CountryCode { get; set; }
[Column("postal_dest")]
public String PostalDestId { get; set; }
public string PostalDestId { get; set; }
[Column("address")]
public String Address { get; set; }
public string Address { get; set; }
[Column("default_kgnr")]
public int DefaultKgNr { get; set; }
[ForeignKey("CountryCode")]
public virtual Country Country { get; set; }
[ForeignKey("CountryCode, PostalDestId")]
public virtual PostalDest PostalDest { get; set; }

View File

@ -12,15 +12,15 @@ namespace WGneu.Models
public class PostalDest
{
[Column("country")]
public String CountryCode { get; set; }
public string CountryCode { get; set; }
[Column("id")]
public String Id { get; set; }
public string Id { get; set; }
[ForeignKey("CountryCode")]
public virtual Country Country { get; set; }
public AT_Plz? Plz(WGContext ctx)
public AT_Plz? Plz(WgContext ctx)
{
if (CountryCode != "AT") return null;
return ctx.Postleitzahlen.Where(p => p.Id == Id).FirstOrDefault();

View File

@ -8,7 +8,7 @@ using WGneu.Models;
namespace WGneu
{
public class WGContext : DbContext
public class WgContext : DbContext
{
public DbSet<Country> Countries { get; set; }
public DbSet<Member> Members { get; set; }
@ -20,7 +20,7 @@ namespace WGneu
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=\"C:\\Users\\tom\\Projects\\wgneu\\wgtest.sqlite3\"; foreign keys=true");
optionsBuilder.UseSqlite("Data Source=\"C:\\Users\\lorenz\\Desktop\\wgtest.sqlite3\"; foreign keys=true");
optionsBuilder.UseLazyLoadingProxies();
}
}