using System; using System.Collections.Generic; using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Layout; namespace Logof_Client; public partial class ResultWindow : Window { public List errortypecheckboxes = new(); public KasAddressList ur_addresses = new("Ergebnis_" + DateTime.Now.ToString("ddMMyy_HHmmss")); public List ur_result; public List warningtypecheckboxes = new(); public ResultWindow(List result, int addressSetID) { InitializeComponent(); ur_result = result; ur_addresses = ur_addresses; Load(result); //ViewSingle(200552426); } private void GenerateView(List result) { // var errors = new List(); //foreach (var single_result in result) errors.Add(single_result); LblResultCount.Content = $"{result.Count}/{ur_result.Count} Ergebnisse"; DgResult.ItemsSource = result; } private void ViewSingle(int refsid) { foreach (var result in ur_addresses.KasPersons) if (result.refsid == refsid) { var wind = new Window(); var stp = new StackPanel(); stp.Orientation = Orientation.Horizontal; stp.Margin = new Thickness(10); var tb = new TextBlock(); var tb2 = new TextBlock(); tb.Text = "refsid:\nanrede:\ntitel:\nvorname:\nadel:\nname:\nnamezus:\nanredzus:\nstrasse:\nstrasse2:\nplz:\nort:\nland:\npplz:\npostfach:\nname1:\nname2:\nname3:\nname4:\nname5:\nfunktion:\nfunktion2:\nabteilung:\nfunktionad:"; tb2.Text = result.refsid + "\n" + result.anrede + "\n" + result.titel + "\n" + result.vorname + "\n" + result.adel + "\n" + result.name + "\n" + result.namezus + "\n" + result.anredzus + "\n" + result.strasse + "\n" + result.strasse2 + "\n" + result.plz + "\n" + result.ort + "\n" + result.land + "\n" + result.pplz + "\n" + result.postfach + "\n" + result.name1 + "\n" + result.name2 + "\n" + result.name3 + "\n" + result.name4 + "\n" + result.name5 + "\n" + result.funktion + "\n" + result.funktion2 + "\n" + result.abteilung + "\n" + result.funktionad; stp.Children.Add(tb); stp.Children.Add(tb2); wind.Content = stp; wind.ShowInTaskbar = false; wind.SizeToContent = SizeToContent.WidthAndHeight; wind.Show(); return; } } private void Load(List result) { var knownErrors = new List(); var knownWarnings = new List(); foreach (var single_result in result) { foreach (var errtyp in single_result.errors) if (!knownErrors.Contains(errtyp)) knownErrors.Add(errtyp); foreach (var wartyp in single_result.warnings) if (!knownWarnings.Contains(wartyp)) knownWarnings.Add(wartyp); } foreach (var errtype in knownErrors) { var cb = new CheckBox(); cb.IsChecked = true; cb.Content = errtype.ToString(); cb.Click += (sender, e) => UpdateFilter(); errortypecheckboxes.Add(cb); StpFilterOptions.Children.Add(cb); } foreach (var wartype in knownWarnings) { var cb = new CheckBox(); cb.IsChecked = true; cb.Content = wartype.ToString(); cb.Click += (sender, e) => UpdateFilter(); warningtypecheckboxes.Add(cb); StpFilterOptions.Children.Add(cb); } GenerateView(result); } private void BtnUpdateFilter_OnClick(object? sender, RoutedEventArgs e) { } private void UpdateFilter() { var temp_result = new List(); var checked_types = new List(); var checked_types_war = new List(); foreach (var cb in errortypecheckboxes) if (cb.IsChecked == true) checked_types.Add( (AddressCheck.ErrorTypes)Enum.Parse(typeof(AddressCheck.ErrorTypes), cb.Content.ToString())); foreach (var cb in warningtypecheckboxes) if (cb.IsChecked == true) checked_types_war.Add( (AddressCheck.WarningTypes)Enum.Parse(typeof(AddressCheck.WarningTypes), cb.Content.ToString())); foreach (var sres in ur_result) { foreach (var err in sres.errors) if (checked_types.Contains(err) && !temp_result.Contains(sres)) temp_result.Add(sres); foreach (var war in sres.warnings) if (checked_types_war.Contains(war) && !temp_result.Contains(sres)) temp_result.Add(sres); } //var errors = new List(); //foreach (var single_result in temp_result) errors.Add(new KasPersonError(single_result)); LblResultCount.Content = $"{temp_result.Count}/{ur_result.Count} Ergebnisse"; DgResult.ItemsSource = temp_result; } private void BtnShowSelected_OnClick(object? sender, RoutedEventArgs e) { foreach (var selected in DgResult.SelectedItems) try { var _asKas = (KasPersonError)selected; ViewSingle(_asKas.refsid); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }