diff --git a/DataStore/DataStructures.cs b/DataStore/DataStructures.cs index b715dbd..c2b5dad 100644 --- a/DataStore/DataStructures.cs +++ b/DataStore/DataStructures.cs @@ -60,6 +60,11 @@ public class KasAddressList //Address-Set var id = listItemName.Split(" - ")[0]; return int.Parse(id); } + + public override string ToString() + { + return Name + " (" + KasPersons.Count + " Einträge)"; + } } public class KasPerson @@ -188,6 +193,18 @@ public class KasPerson return highest + base_id + 1; } + + public override string ToString() + { + if (refsid != null && refsid != 0) + { + return refsid + " - " + name; + } + else + { + return id + " - " + name; + } + } } public class KasPersonError diff --git a/DataStore/Settings.cs b/DataStore/Settings.cs index 95bdb8b..fedaa23 100644 --- a/DataStore/Settings.cs +++ b/DataStore/Settings.cs @@ -135,7 +135,7 @@ public class Global public class Customers { public List customers = new(); - public int current { get; set; } = 0; + public Customer current { get; set; } = null; } public class Customer @@ -149,6 +149,11 @@ public class Customer ID = highestID + 1; } + + public override string ToString() + { + return name; + } public string name { get; set; } = ""; public string description { get; set; } = ""; @@ -158,11 +163,11 @@ public class Customer public int ID { get; } - public static int GetIDByCustomerListItem(string item_content) - { - var id = item_content.Split(" - ")[0]; - return int.Parse(id); - } + // public static int GetIDByCustomerListItem(string item_content) + // { + // var id = item_content.Split(" - ")[0]; + // return int.Parse(id); + // } } public class AddressSets diff --git a/MainWindow.axaml.cs b/MainWindow.axaml.cs index a53322b..6959495 100644 --- a/MainWindow.axaml.cs +++ b/MainWindow.axaml.cs @@ -180,7 +180,7 @@ public partial class MainWindow : Window return; } - StartAddressCheck(KasAddressList.GetIDByAddressSetListItem(LstCustomerAdressSets.SelectedItem.ToString())); + StartAddressCheck(((KasAddressList)LstCustomerAdressSets.SelectedItem).ID); } private void BtnCombine_OnClick(object? sender, RoutedEventArgs e) @@ -431,7 +431,7 @@ public partial class MainWindow : Window { if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) + if (customer.ID == Settings._instance.customers.current.ID) customer.name = TbSettingsCustomerName.Text; //Settings.Save(); //RefreshCustomerItems(); @@ -441,19 +441,19 @@ public partial class MainWindow : Window { if (LstSettingsCustomers.SelectedIndex < 0) return; Settings._instance.customers.current = - Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString()); - foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) - { - TbSettingsCustomerDescription.Text = customer.description; - TbSettingsCustomerName.Text = customer.name; - TbSettingsCustomerSenderAddress.Text = customer.sender_address; - TbSettingsCustomerCsvSeparator.Text = customer.separator.ToString(); - if (customer.patch != null) - TbSettingsCustomerPatchInfo.Text = customer.patch.ToString(); + ((Customer)LstSettingsCustomers.SelectedItems[0]); + //foreach (var customer in Settings._instance.customers.customers) + //if (customer.ID == Settings._instance.customers.current.ID) + //{ + TbSettingsCustomerDescription.Text = Settings._instance.customers.current.description; + TbSettingsCustomerName.Text = Settings._instance.customers.current.name; + TbSettingsCustomerSenderAddress.Text = Settings._instance.customers.current.sender_address; + TbSettingsCustomerCsvSeparator.Text = Settings._instance.customers.current.separator.ToString(); + if (Settings._instance.customers.current.patch != null) + TbSettingsCustomerPatchInfo.Text = Settings._instance.customers.current.patch.ToString(); else TbSettingsCustomerPatchInfo.Text = ""; - } + //} } private async void EditButton_Click(object? sender, RoutedEventArgs e) @@ -486,8 +486,8 @@ public partial class MainWindow : Window LstSettingsCustomers.Items.Clear(); foreach (var customer in Settings._instance.customers.customers) { - LstCustomers.Items.Add(customer.ID + " - " + customer.name); - LstSettingsCustomers.Items.Add(customer.ID + " - " + customer.name); + LstCustomers.Items.Add(customer); + LstSettingsCustomers.Items.Add(customer); } try @@ -503,7 +503,7 @@ public partial class MainWindow : Window { if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) + if (customer.ID == Settings._instance.customers.current.ID) customer.description = TbSettingsCustomerDescription.Text; //Settings.Save(); } @@ -518,7 +518,7 @@ public partial class MainWindow : Window { MakeCalcManVisible(); if (LstCustomers.SelectedItems == null || LstCustomers.SelectedIndex == -1) return; - var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]); + var customer_id = ((Customer)LstCustomers.SelectedItem).ID; RefreshAddressSetListItems(customer_id); } @@ -543,7 +543,7 @@ public partial class MainWindow : Window var selected_path = paths[0].Path; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Customer.GetIDByCustomerListItem(LstCustomers.SelectedItems[0].ToString())) + if (customer.ID == ((Customer)LstSettingsCustomers.SelectedItems[0]).ID) { if (customer.patch == null) { @@ -598,7 +598,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 + " (" + k.KasPersons.Count + " Einträge)"); + LstCustomerAdressSets.Items.Add(k); } private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e) @@ -645,7 +645,7 @@ public partial class MainWindow : Window var selected_path = paths[0].Path; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString())) + if (customer.ID == ((Customer)LstSettingsCustomers.SelectedItems[0]).ID) customer.patch = AddressPatch.Import(selected_path); @@ -659,7 +659,7 @@ public partial class MainWindow : Window ? TbSettingsCustomerCsvSeparator.Text : ","; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) + if (customer.ID == Settings._instance.customers.current.ID) try { customer.separator = Convert.ToChar(sep); @@ -678,11 +678,10 @@ public partial class MainWindow : Window { var list = new List(); foreach (var item in LstCustomerAdressSets.SelectedItems) - list.Add(Settings._instance.addressSets.GetAddressSetByID( - Convert.ToInt32(item.ToString().Split(" - ")[0]))); + list.Add((KasAddressList)item); try { - StartCombine(list, Convert.ToInt32(LstCustomers.SelectedItem.ToString().Split(" - ")[0]), "difference", GetCombiningTyp()); + StartCombine(list, Convert.ToInt32(LstCustomers.SelectedItem), "difference", GetCombiningTyp()); } catch { @@ -694,11 +693,10 @@ public partial class MainWindow : Window { var list = new List(); foreach (var item in LstCustomerAdressSets.SelectedItems) - list.Add(Settings._instance.addressSets.GetAddressSetByID( - Convert.ToInt32(item.ToString().Split(" - ")[0]))); + list.Add((KasAddressList)item); try { - StartCombine(list, Convert.ToInt32(LstCustomers.SelectedItem.ToString().Split(" - ")[0]), "union", GetCombiningTyp()); + StartCombine(list, Convert.ToInt32((LstCustomers.SelectedItem as Customer).ID), "union", GetCombiningTyp()); } catch { @@ -711,8 +709,7 @@ public partial class MainWindow : Window { var list = new List(); foreach (var item in LstCustomerAdressSets.SelectedItems) - list.Add(Settings._instance.addressSets.GetAddressSetByID( - Convert.ToInt32(item.ToString().Split(" - ")[0]))); + list.Add((KasAddressList)item); try { StartCombine(list, Convert.ToInt32(LstCustomers.SelectedItem.ToString().Split(" - ")[0]), "intersection", GetCombiningTyp()); @@ -740,8 +737,7 @@ public partial class MainWindow : Window { var list = new List(); foreach (var item in LstCustomerAdressSets.SelectedItems) - list.Add(Settings._instance.addressSets.GetAddressSetByID( - Convert.ToInt32(item.ToString().Split(" - ")[0]))); + list.Add((KasAddressList)item); StartCombine(list, Convert.ToInt32(LstCustomers.SelectedItem.ToString().Split(" - ")[0]), "symdiff", GetCombiningTyp()); } @@ -769,8 +765,8 @@ public partial class MainWindow : Window { var builder = new PdfBuilder(Settings._instance.pdfExport); - builder.CreateAddressLabelPdfFromAddressSetWithPlaceholder( - Convert.ToInt32(LstCustomerAdressSets.SelectedItems[0].ToString().Split(" - ")[0]), + builder.CreateAddressLabelPdfFromAddressSetWithPlaceholder(( + (KasAddressList)LstCustomerAdressSets.SelectedItem).ID, "Company Logo/Info", filePath ); @@ -863,7 +859,7 @@ public partial class MainWindow : Window { if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) + if (customer.ID == Settings._instance.customers.current.ID) customer.sender_address = TbSettingsCustomerSenderAddress.Text; } @@ -1060,7 +1056,7 @@ public partial class MainWindow : Window { var id = KasAddressList.GetIDByAddressSetListItem(LstCustomerAdressSets.SelectedItems[0] .ToString()); - var cus_id = Customer.GetIDByCustomerListItem(LstCustomers.SelectedItems[0].ToString()); + var cus_id = ((Customer)LstCustomers.SelectedItems[0]).ID; foreach (var set in Settings._instance.addressSets.addresses) if (set.ID == id) { @@ -1080,17 +1076,14 @@ public partial class MainWindow : Window private void BtnDeleteCustomer_OnClick(object? sender, RoutedEventArgs e) { if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; - foreach (var customer in Settings._instance.customers.customers) - if (customer.ID == Settings._instance.customers.current) - try - { - Settings._instance.customers.customers.Remove(customer); - break; - } - catch (Exception ex) - { - MessageBox.Show(this, "Unknown Error: " + ex.Message, "Error"); - } + try + { + Settings._instance.customers.customers.Remove((Customer)LstSettingsCustomers.SelectedItem); + } + catch (Exception ex) + { + MessageBox.Show(this, "Unknown Error: " + ex.Message, "Error"); + } RefreshCustomerItems(); } }