[chore:] implemented difference (combiner) and its usage

This commit is contained in:
Elias Fierke
2025-10-23 13:32:26 +02:00
parent 09bbdfdfde
commit f28ac1a4b9
3 changed files with 175 additions and 82 deletions

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Interactivity;
@@ -197,14 +196,14 @@ public partial class MainWindow : Window
progressWindow.Show(_instance);
var processor = new CombineAddresses(progressWindow);
var result = await processor.Perform(address_list);
//var result = await processor.Perform(address_list);
progressWindow.Close();
File.WriteAllText(OpenSettingsSaveAsDialog().Result,
new CsvBuilder(
"refsid,anrede,titel,vorname,adel,name,namezus,anredzus,strasse,strasse2,plz,ort,land,pplz,postfach,name1,name2,name3,name4,name5,funktion,funktion2,abteilung,funktionad,lastupdate",
result).BuildKas());
//File.WriteAllText(OpenSettingsSaveAsDialog().Result,
//new CsvBuilder(
//"refsid,anrede,titel,vorname,adel,name,namezus,anredzus,strasse,strasse2,plz,ort,land,pplz,postfach,name1,name2,name3,name4,name5,funktion,funktion2,abteilung,funktionad,lastupdate",
//result).BuildKas());
}
private async Task<string> OpenSettingsSaveAsDialog()
@@ -241,6 +240,24 @@ public partial class MainWindow : Window
}
}
private async void StartDifference(List<KasAddressList> address_lists, int owner_id)
{
var progressWindow = new ProgressWindow();
progressWindow.Show(_instance);
var processor = new CombineAddresses(progressWindow);
var result = await processor.Perform(address_lists, "difference");
result.owner_id = owner_id;
Settings._instance.addressSets.addresses.Add(result);
Settings.Save();
progressWindow.Close();
//new ResultWindow(result, addresSetID).Show();
}
private void BtnSettingsAddCustomer_OnClick(object? sender, RoutedEventArgs e)
{
Settings._instance.customers.customers.Add(new Customer());
@@ -399,7 +416,7 @@ public partial class MainWindow : Window
foreach (var k in Settings._instance.addressSets.addresses)
foreach (var customer in Settings._instance.customers.customers)
if (customer.ID == k.owner_id && customer.ID == customer_id)
LstCustomerAdressSets.Items.Add(k.ID + " - " + k.Name);
LstCustomerAdressSets.Items.Add(k.ID + " - " + k.Name + "(" + k.KasPersons.Count + " Einträge)");
}
private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
@@ -474,4 +491,14 @@ public partial class MainWindow : Window
MessageBox.Show(this, "Unknown Error: " + ex.Message, "Error");
}
}
private void BtnCombineDifference_OnClick(object? sender, RoutedEventArgs e)
{
var list = new List<KasAddressList>();
foreach (var item in LstCustomerAdressSets.SelectedItems)
list.Add(Settings._instance.addressSets.GetAddressSetByID(
Convert.ToInt32(item.ToString().Split(" - ")[0])));
StartDifference(list, Convert.ToInt32(LstCustomers.SelectedItem.ToString().Split(" - ")[0]));
}
}