[chore:] combine split into four possible variants of merging

This commit is contained in:
Elias Fierke
2025-10-09 10:21:42 +02:00
parent c4663e489e
commit 63d430dd72
2 changed files with 502 additions and 445 deletions

View File

@@ -3,6 +3,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
MinWidth="1000" MinHeight="600"
x:Class="Logof_Client.MainWindow" WindowState="Maximized" Icon="assets/icon.ico" x:Class="Logof_Client.MainWindow" WindowState="Maximized" Icon="assets/icon.ico"
Title="Logof Client"> Title="Logof Client">
<Border> <Border>
@@ -145,9 +146,53 @@
</Button> </Button>
</StackPanel> </StackPanel>
</Grid> </Grid>
<Grid Grid.Row="2" Margin="20"> <Grid Grid.Row="2" Margin="20" IsVisible="True" x:Name="GrdCalcMan">
<Image Source="assets/calc_man.png" VerticalAlignment="Center" HorizontalAlignment="Center" /> <Image Source="assets/calc_man.png" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid> </Grid>
<Grid Grid.Row="2" Margin="20" IsVisible="False" x:Name="GrdCombineTypes">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="10"
Margin="5,0,0,0">
<Button HorizontalAlignment="Stretch" MinWidth="240"
HorizontalContentAlignment="Center" x:Name="BtnCombineUnion"
Margin="0,0,0,10">
<StackPanel Orientation="Horizontal">
<LucideIcon Kind="SquaresUnite" Width="36" Height="36" />
<Label Content="Vereinigung" VerticalContentAlignment="Center" FontSize="15"
FontWeight="Bold" />
</StackPanel>
</Button>
<Button HorizontalAlignment="Stretch" MinWidth="240"
HorizontalContentAlignment="Center" x:Name="BtnCombineIntersect"
Margin="0,0,0,10">
<StackPanel Orientation="Horizontal">
<LucideIcon Kind="SquaresIntersect" Width="36" Height="36" />
<Label Content="Schnittmenge" VerticalContentAlignment="Center"
FontSize="15"
FontWeight="Bold" />
</StackPanel>
</Button>
<Button HorizontalAlignment="Stretch" MinWidth="240"
HorizontalContentAlignment="Center" x:Name="BtnCombineDifference"
Margin="0,0,0,10">
<StackPanel Orientation="Horizontal">
<LucideIcon Kind="SquaresSubtract" Width="36" Height="36" />
<Label Content="Differenz" VerticalContentAlignment="Center"
FontSize="15"
FontWeight="Bold" />
</StackPanel>
</Button>
<Button HorizontalAlignment="Stretch" MinWidth="240"
HorizontalContentAlignment="Center" x:Name="BtnCombineSymmetric"
Margin="0,0,0,10">
<StackPanel Orientation="Horizontal">
<LucideIcon Kind="SquaresExclude" Width="36" Height="36" />
<Label Content="Symmetrische Differenz" VerticalContentAlignment="Center"
FontSize="15"
FontWeight="Bold" />
</StackPanel>
</Button>
</StackPanel>
</Grid>
</Grid> </Grid>
</TabItem> </TabItem>
<TabItem IsEnabled="False"> <TabItem IsEnabled="False">

View File

@@ -1,445 +1,457 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.Platform.Storage; using Avalonia.Platform.Storage;
namespace Logof_Client; namespace Logof_Client;
public partial class MainWindow : Window public partial class MainWindow : Window
{ {
public static MainWindow _instance; public static MainWindow _instance;
public Uri filePath; public Uri filePath;
public MainWindow() public MainWindow()
{ {
InitializeComponent(); InitializeComponent();
_instance = this; _instance = this;
WindowState = WindowState.Maximized; WindowState = WindowState.Maximized;
Global.Load(); Global.Load();
Settings.Load(); Settings.Load();
} }
private async void StartAddressCheck(KasAddressList addresses) private async void StartAddressCheck(KasAddressList addresses)
{ {
//var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier //var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier
var progressWindow = new ProgressWindow(); var progressWindow = new ProgressWindow();
progressWindow.Show(_instance); progressWindow.Show(_instance);
var processor = new AddressCheck(progressWindow); var processor = new AddressCheck(progressWindow);
var result = await processor.Perform(addresses); var result = await processor.Perform(addresses);
progressWindow.Close(); progressWindow.Close();
new ResultWindow(result, addresses).Show(); new ResultWindow(result, addresses).Show();
//await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig"); //await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig");
} }
private async void StartAddressRepair(Uri path) private async void StartAddressRepair(Uri path)
{ {
var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier var addresses = DataImport.ImportKasAddressList(path); // Ihr Code hier
var progressWindow = new ProgressWindow(); var progressWindow = new ProgressWindow();
progressWindow.Show(_instance); progressWindow.Show(_instance);
var processor = new AddressRepair(progressWindow); var processor = new AddressRepair(progressWindow);
//var result = await processor.Perform(addresses.Item2, errors); //var result = await processor.Perform(addresses.Item2, errors);
progressWindow.Close(); progressWindow.Close();
//new ResultWindow(result, addresses.Item2).Show(); //new ResultWindow(result, addresses.Item2).Show();
//await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig"); //await MessageBox.Show(_instance, $"{result.Count} Einträge fehlerhaft.", "Fertig");
} }
private void MnuExit_OnClick(object? sender, RoutedEventArgs e) private void MnuExit_OnClick(object? sender, RoutedEventArgs e)
{ {
Environment.Exit(0); Environment.Exit(0);
} }
private void MnuAbout_OnClick(object? sender, RoutedEventArgs e) private void MnuAbout_OnClick(object? sender, RoutedEventArgs e)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
private void MnuSettings_OnClick(object? sender, RoutedEventArgs e) private void MnuSettings_OnClick(object? sender, RoutedEventArgs e)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
private void MnuHelp_OnClick(object? sender, RoutedEventArgs e) private void MnuHelp_OnClick(object? sender, RoutedEventArgs e)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
private void MnuGithub_OnClick(object? sender, RoutedEventArgs e) private void MnuGithub_OnClick(object? sender, RoutedEventArgs e)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
private async void BtnChooseFile_OnClick(object? sender, RoutedEventArgs e) private async void BtnChooseFile_OnClick(object? sender, RoutedEventArgs e)
{ {
var topLevel = GetTopLevel(this); var topLevel = GetTopLevel(this);
var file = await topLevel!.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions var file = await topLevel!.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
{ {
Title = "KAS-CSV-Datei auswählen", Title = "KAS-CSV-Datei auswählen",
AllowMultiple = false, AllowMultiple = false,
FileTypeFilter = new[] FileTypeFilter = new[]
{ {
new FilePickerFileType(".csv-Datei") new FilePickerFileType(".csv-Datei")
{ {
Patterns = new[] { "*.csv" } Patterns = new[] { "*.csv" }
//Patterns = new[] { "*" } //Patterns = new[] { "*" }
} }
} }
}); });
if (file == null) return; if (file == null) return;
//TbFilename.Text = file[0].Path.ToString(); //TbFilename.Text = file[0].Path.ToString();
filePath = file[0].Path; filePath = file[0].Path;
} }
private void BtnCheck_OnClick(object? sender, RoutedEventArgs e) private void BtnCheck_OnClick(object? sender, RoutedEventArgs e)
{ {
if (LstCustomerAdressSets.SelectedIndex == -1) MakeCalcManVisible();
{ if (LstCustomerAdressSets.SelectedIndex == -1)
MessageBox.Show(null, "Bitte zunächst ein Adress-Set auswählen", "Kein Adress-Set ausgewählt"); {
return; MessageBox.Show(null, "Bitte zunächst ein Adress-Set auswählen", "Kein Adress-Set ausgewählt");
} return;
}
var set = new KasAddressList("");
foreach (var adset in Settings._instance.addressSets.addresses) var set = new KasAddressList("");
if (adset.Name == LstCustomerAdressSets.SelectedItem.ToString()) foreach (var adset in Settings._instance.addressSets.addresses)
set = adset; if (adset.Name == LstCustomerAdressSets.SelectedItem.ToString())
set = adset;
StartAddressCheck(set);
// var result = DataImport.ImportKasAddressList(filePath); StartAddressCheck(set);
// if (result.Item1) // var result = DataImport.ImportKasAddressList(filePath);
// { // if (result.Item1)
// var check_result = new AddressCheck().Perform(result.Item2); // {
// foreach (var item in check_result.Result) // var check_result = new AddressCheck().Perform(result.Item2);
// { // foreach (var item in check_result.Result)
// Console.WriteLine(); // {
// Console.Write(item.Item1 + " "); // Console.WriteLine();
// foreach (var error in item.Item2) Console.Write(error + ", "); // Console.Write(item.Item1 + " ");
// } // foreach (var error in item.Item2) Console.Write(error + ", ");
// } // }
} // }
}
private void BtnCombine_OnClick(object? sender, RoutedEventArgs e)
{ private void BtnCombine_OnClick(object? sender, RoutedEventArgs e)
if (filePath == null) {
{ GrdCalcMan.IsVisible = false;
MessageBox.Show(null, "Bitte zunächst eine Datei auswählen", "Datei fehlt"); GrdCombineTypes.IsVisible = true;
return; }
}
private void MakeCalcManVisible()
StartCombine(filePath); {
} GrdCalcMan.IsVisible = true;
GrdCombineTypes.IsVisible = false;
private async void StartCombine(Uri path) }
{
var addresses = DataImport.ImportKasAddressList(path); private async void StartCombine(Uri path)
var progressWindow = new ProgressWindow(); {
var address_list = new List<KasAddressList> { addresses.Item2 }; MakeCalcManVisible();
var addresses = DataImport.ImportKasAddressList(path);
var topLevel = GetTopLevel(this); var progressWindow = new ProgressWindow();
var file = await topLevel!.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions var address_list = new List<KasAddressList> { addresses.Item2 };
{
Title = "Weitere KAS-CSV-Dateien auswählen", var topLevel = GetTopLevel(this);
AllowMultiple = true, var file = await topLevel!.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
FileTypeFilter = new[] {
{ Title = "Weitere KAS-CSV-Dateien auswählen",
new FilePickerFileType(".csv-Dateien") AllowMultiple = true,
{ FileTypeFilter = new[]
Patterns = new[] { "*.csv" } {
//Patterns = new[] { "*" } new FilePickerFileType(".csv-Dateien")
} {
} Patterns = new[] { "*.csv" }
}); //Patterns = new[] { "*" }
}
if (file == null) return; }
});
//filePath = file[0].Path;
foreach (var f in file) address_list.Add(DataImport.ImportKasAddressList(f.Path).Item2); if (file == null) return;
//filePath = file[0].Path;
progressWindow.Show(_instance); foreach (var f in file) address_list.Add(DataImport.ImportKasAddressList(f.Path).Item2);
var processor = new CombineAddresses(progressWindow);
var result = await processor.Perform(address_list); progressWindow.Show(_instance);
var processor = new CombineAddresses(progressWindow);
progressWindow.Close(); var result = await processor.Perform(address_list);
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", progressWindow.Close();
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",
private async Task<string> OpenSettingsSaveAsDialog() result).BuildKas());
{ }
var settingsFileName = "KAS-Adress-Liste";
private async Task<string> OpenSettingsSaveAsDialog()
try {
{ var settingsFileName = "KAS-Adress-Liste";
var filePicker = new SaveFileDialog
{ try
Title = "Datei speichern...", {
InitialFileName = $"{settingsFileName}.csv", var filePicker = new SaveFileDialog
DefaultExtension = ".csv", {
Filters = new List<FileDialogFilter> Title = "Datei speichern...",
{ InitialFileName = $"{settingsFileName}.csv",
new() { Name = "CSV-Datei", Extensions = { "csv" } } DefaultExtension = ".csv",
} Filters = new List<FileDialogFilter>
}; {
new() { Name = "CSV-Datei", Extensions = { "csv" } }
var settingsSavePath = await filePicker.ShowAsync(this); }
if (settingsSavePath == null) };
{
} var settingsSavePath = await filePicker.ShowAsync(this);
if (settingsSavePath == null)
return settingsSavePath; {
//SettingsManager.Save(settingsSavePath); }
//Logger.Log("Settings saved at " + settingsSavePath);
} return settingsSavePath;
catch (Exception ex) //SettingsManager.Save(settingsSavePath);
{ //Logger.Log("Settings saved at " + settingsSavePath);
//Logger.Log("Saving file not successful: " + ex.Message, Logger.LogType.Error); }
await MessageBox.Show(this, ex.Message, "Fehler beim Speichern der Datei"); catch (Exception ex)
return null; {
} //Logger.Log("Saving file not successful: " + ex.Message, Logger.LogType.Error);
} await MessageBox.Show(this, ex.Message, "Fehler beim Speichern der Datei");
return null;
private void BtnSettingsAddCustomer_OnClick(object? sender, RoutedEventArgs e) }
{ }
Settings._instance.customers.customers.Add(new Customer());
TbSettingsCustomerDescription.Text = ""; private void BtnSettingsAddCustomer_OnClick(object? sender, RoutedEventArgs e)
TbSettingsCustomerName.Text = ""; {
TbSettingsCustomerPatchInfo.Text = ""; Settings._instance.customers.customers.Add(new Customer());
//Settings.Save(); TbSettingsCustomerDescription.Text = "";
//RefreshCustomerItems(); TbSettingsCustomerName.Text = "";
} TbSettingsCustomerPatchInfo.Text = "";
//Settings.Save();
private void TbSettingsCustomerName_OnTextChanged(object? sender, TextChangedEventArgs e) //RefreshCustomerItems();
{ }
if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
foreach (var customer in Settings._instance.customers.customers) private void TbSettingsCustomerName_OnTextChanged(object? sender, TextChangedEventArgs e)
if (customer.ID == Settings._instance.customers.current) {
customer.name = TbSettingsCustomerName.Text; if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
//Settings.Save(); foreach (var customer in Settings._instance.customers.customers)
//RefreshCustomerItems(); if (customer.ID == Settings._instance.customers.current)
} customer.name = TbSettingsCustomerName.Text;
//Settings.Save();
private void LstSettingsCustomers_OnSelectionChanged(object? sender, SelectionChangedEventArgs e) //RefreshCustomerItems();
{ }
if (LstSettingsCustomers.SelectedIndex < 0) return;
Settings._instance.customers.current = private void LstSettingsCustomers_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString()); {
foreach (var customer in Settings._instance.customers.customers) if (LstSettingsCustomers.SelectedIndex < 0) return;
if (customer.ID == Settings._instance.customers.current) Settings._instance.customers.current =
{ Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString());
TbSettingsCustomerDescription.Text = customer.description; foreach (var customer in Settings._instance.customers.customers)
TbSettingsCustomerName.Text = customer.name; if (customer.ID == Settings._instance.customers.current)
TbSettingsCustomerCsvSeparator.Text = customer.separator.ToString(); {
if (customer.patch != null) TbSettingsCustomerDescription.Text = customer.description;
TbSettingsCustomerPatchInfo.Text = customer.patch.ToString(); TbSettingsCustomerName.Text = customer.name;
else TbSettingsCustomerCsvSeparator.Text = customer.separator.ToString();
TbSettingsCustomerPatchInfo.Text = ""; if (customer.patch != null)
} TbSettingsCustomerPatchInfo.Text = customer.patch.ToString();
} else
TbSettingsCustomerPatchInfo.Text = "";
public void RefreshCustomerItems() }
{ }
if (LstCustomers.Items.Count > 0)
LstCustomers.SelectedIndex = -1; public void RefreshCustomerItems()
else {
LstCustomers.SelectedItem = null; if (LstCustomers.Items.Count > 0)
LstCustomers.SelectedIndex = -1;
LstCustomers.Items.Clear(); else
if (LstSettingsCustomers.Items.Count > 0) LstCustomers.SelectedItem = null;
LstSettingsCustomers.SelectedIndex = -1;
else LstCustomers.Items.Clear();
LstSettingsCustomers.SelectedItem = null; if (LstSettingsCustomers.Items.Count > 0)
LstSettingsCustomers.SelectedIndex = -1;
LstSettingsCustomers.Items.Clear(); else
foreach (var customer in Settings._instance.customers.customers) LstSettingsCustomers.SelectedItem = null;
{
LstCustomers.Items.Add(customer.ID + " - " + customer.name); LstSettingsCustomers.Items.Clear();
LstSettingsCustomers.Items.Add(customer.ID + " - " + customer.name); foreach (var customer in Settings._instance.customers.customers)
} {
} LstCustomers.Items.Add(customer.ID + " - " + customer.name);
LstSettingsCustomers.Items.Add(customer.ID + " - " + customer.name);
private void TbSettingsCustomerDescription_OnTextChanged(object? sender, TextChangedEventArgs e) }
{ }
if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
foreach (var customer in Settings._instance.customers.customers) private void TbSettingsCustomerDescription_OnTextChanged(object? sender, TextChangedEventArgs e)
if (customer.ID == Settings._instance.customers.current) {
customer.description = TbSettingsCustomerDescription.Text; if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
//Settings.Save(); foreach (var customer in Settings._instance.customers.customers)
} if (customer.ID == Settings._instance.customers.current)
customer.description = TbSettingsCustomerDescription.Text;
private void BtnSettingsSaveCustomerData_OnClick(object? sender, RoutedEventArgs e) //Settings.Save();
{ }
Settings.Save();
RefreshCustomerItems(); private void BtnSettingsSaveCustomerData_OnClick(object? sender, RoutedEventArgs e)
} {
Settings.Save();
private void LstCustomers_OnSelectionChanged(object? sender, SelectionChangedEventArgs e) RefreshCustomerItems();
{ }
if (LstCustomers.SelectedItems == null || LstCustomers.SelectedIndex == -1) return;
var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]); private void LstCustomers_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
RefreshAddressSetListItems(customer_id); {
} MakeCalcManVisible();
if (LstCustomers.SelectedItems == null || LstCustomers.SelectedIndex == -1) return;
private async void BtnCustomerAddressSetImport_OnClick(object? sender, RoutedEventArgs e) var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]);
{ RefreshAddressSetListItems(customer_id);
var opts = new FilePickerOpenOptions(); }
opts.Title = "Address-Set importieren...";
opts.AllowMultiple = false; private async void BtnCustomerAddressSetImport_OnClick(object? sender, RoutedEventArgs e)
{
var type = new FilePickerFileType("CSV-Dateien (*.csv)"); MakeCalcManVisible();
type.Patterns = new[] { "*.csv" }; var opts = new FilePickerOpenOptions();
opts.FileTypeFilter = new[] { type }; opts.Title = "Address-Set importieren...";
opts.AllowMultiple = false;
var paths = await StorageProvider.OpenFilePickerAsync(opts);
var type = new FilePickerFileType("CSV-Dateien (*.csv)");
if (paths?.Count <= 0) return; type.Patterns = new[] { "*.csv" };
opts.FileTypeFilter = new[] { type };
if (LstCustomers.SelectedIndex < 0) return;
var paths = await StorageProvider.OpenFilePickerAsync(opts);
var selected_path = paths[0].Path; if (paths?.Count <= 0) return;
foreach (var customer in Settings._instance.customers.customers) if (LstCustomers.SelectedIndex < 0) return;
if (customer.ID == Customer.GetIDByCustomerListItem(LstCustomers.SelectedItems[0].ToString()))
{
if (customer.patch == null) var selected_path = paths[0].Path;
{
var got = DataImport.ImportKasAddressList(selected_path, null, customer.separator); foreach (var customer in Settings._instance.customers.customers)
if (!got.Item1) if (customer.ID == Customer.GetIDByCustomerListItem(LstCustomers.SelectedItems[0].ToString()))
{ {
Console.WriteLine("Error while importing. Please try another file."); if (customer.patch == null)
} {
else var got = DataImport.ImportKasAddressList(selected_path, null, customer.separator);
{ if (!got.Item1)
got.Item2.SetOwner(customer.ID); {
Settings._instance.addressSets.addresses.Add(got.Item2); Console.WriteLine("Error while importing. Please try another file.");
} }
else
//var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]); {
RefreshAddressSetListItems(customer.ID); got.Item2.SetOwner(customer.ID);
} Settings._instance.addressSets.addresses.Add(got.Item2);
else }
{
var got = DataImport.ImportKasAddressList(selected_path, customer.patch, customer.separator); //var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]);
if (!got.Item1) RefreshAddressSetListItems(customer.ID);
{ }
Console.WriteLine("Error while importing. Please try another file."); else
} {
else var got = DataImport.ImportKasAddressList(selected_path, customer.patch, customer.separator);
{ if (!got.Item1)
got.Item2.SetOwner(customer.ID); {
Settings._instance.addressSets.addresses.Add(got.Item2); Console.WriteLine("Error while importing. Please try another file.");
} }
else
//var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]); {
RefreshAddressSetListItems(customer.ID); got.Item2.SetOwner(customer.ID);
} Settings._instance.addressSets.addresses.Add(got.Item2);
} }
//var customer_id = int.Parse(LstCustomers.SelectedItem.ToString().Split(" - ")[0]);
Settings.Save(); RefreshAddressSetListItems(customer.ID);
} }
}
public void RefreshAddressSetListItems(int customer_id)
{
if (LstCustomers.SelectedIndex < 0) return; Settings.Save();
LstCustomerAdressSets.SelectedItems = null; }
LstCustomerAdressSets.Items.Clear();
foreach (var k in Settings._instance.addressSets.addresses) public void RefreshAddressSetListItems(int customer_id)
foreach (var customer in Settings._instance.customers.customers) {
if (customer.ID == k.owner_id && customer.ID == customer_id) BtnCheck.IsEnabled = false;
LstCustomerAdressSets.Items.Add(k.Name); BtnCombine.IsEnabled = false;
} BtnGenerateLabels.IsEnabled = false;
BtnRepair.IsEnabled = false;
private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e) BtnShorten.IsEnabled = false;
{
if (LstCustomerAdressSets.SelectedItems == null || LstCustomerAdressSets.SelectedIndex == -1) if (LstCustomers.SelectedIndex < 0) return;
{
BtnCheck.IsEnabled = false; LstCustomerAdressSets.SelectedItems = null;
BtnCombine.IsEnabled = false; LstCustomerAdressSets.Items.Clear();
foreach (var k in Settings._instance.addressSets.addresses)
BtnGenerateLabels.IsEnabled = false; foreach (var customer in Settings._instance.customers.customers)
BtnRepair.IsEnabled = false; if (customer.ID == k.owner_id && customer.ID == customer_id)
BtnShorten.IsEnabled = false; LstCustomerAdressSets.Items.Add(k.Name);
} }
else
{ private void LstCustomerAdressSets_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
BtnCheck.IsEnabled = true; {
BtnCombine.IsEnabled = true; MakeCalcManVisible();
if (LstCustomerAdressSets.SelectedItems == null || LstCustomerAdressSets.SelectedIndex == -1)
// BtnGenerateLabels.IsEnabled = true; {
// BtnRepair.IsEnabled = true; BtnCheck.IsEnabled = false;
// BtnShorten.IsEnabled = true; BtnCombine.IsEnabled = false;
} BtnGenerateLabels.IsEnabled = false;
} BtnRepair.IsEnabled = false;
BtnShorten.IsEnabled = false;
private async void BtnSettingsImportCustomerAddressPatch_OnClick(object? sender, RoutedEventArgs e) }
{ else
if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; {
BtnCheck.IsEnabled = true;
var opts = new FilePickerOpenOptions(); BtnCombine.IsEnabled = true;
opts.Title = "Address-Patch für " + LstSettingsCustomers.SelectedItems[0] + "importieren...";
opts.AllowMultiple = false; // BtnGenerateLabels.IsEnabled = true;
// BtnRepair.IsEnabled = true;
var type = new FilePickerFileType("ADPAC-Dateien (*.adpac)"); // BtnShorten.IsEnabled = true;
type.Patterns = new[] { "*.adpac" }; }
opts.FileTypeFilter = new[] { type }; }
var paths = await StorageProvider.OpenFilePickerAsync(opts); private async void BtnSettingsImportCustomerAddressPatch_OnClick(object? sender, RoutedEventArgs e)
{
if (paths?.Count <= 0) return; if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
//if (LstSettingsCustomers.SelectedIndex < 0) return; var opts = new FilePickerOpenOptions();
opts.Title = "Address-Patch für " + LstSettingsCustomers.SelectedItems[0] + "importieren...";
opts.AllowMultiple = false;
var selected_path = paths[0].Path;
var type = new FilePickerFileType("ADPAC-Dateien (*.adpac)");
foreach (var customer in Settings._instance.customers.customers) type.Patterns = new[] { "*.adpac" };
if (customer.ID == Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString())) opts.FileTypeFilter = new[] { type };
customer.patch = AddressPatch.Import(selected_path);
var paths = await StorageProvider.OpenFilePickerAsync(opts);
Settings.Save(); if (paths?.Count <= 0) return;
}
//if (LstSettingsCustomers.SelectedIndex < 0) return;
private void TbSettingsCustomerCsvSeparator_OnTextChanged(object? sender, TextChangedEventArgs e)
{
if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return; var selected_path = paths[0].Path;
var sep = !string.IsNullOrEmpty(TbSettingsCustomerCsvSeparator.Text)
? TbSettingsCustomerCsvSeparator.Text foreach (var customer in Settings._instance.customers.customers)
: ","; if (customer.ID == Customer.GetIDByCustomerListItem(LstSettingsCustomers.SelectedItems[0].ToString()))
foreach (var customer in Settings._instance.customers.customers) customer.patch = AddressPatch.Import(selected_path);
if (customer.ID == Settings._instance.customers.current)
try
{ Settings.Save();
customer.separator = Convert.ToChar(sep); }
}
catch (FormatException ex) private void TbSettingsCustomerCsvSeparator_OnTextChanged(object? sender, TextChangedEventArgs e)
{ {
MessageBox.Show(this, "Error while converting: " + ex.Message, "Could not parse"); if (LstSettingsCustomers.SelectedIndex == null || LstSettingsCustomers.SelectedIndex == -1) return;
} var sep = !string.IsNullOrEmpty(TbSettingsCustomerCsvSeparator.Text)
catch (Exception ex) ? TbSettingsCustomerCsvSeparator.Text
{ : ",";
MessageBox.Show(this, "Unknown Error: " + ex.Message, "Error"); foreach (var customer in Settings._instance.customers.customers)
} if (customer.ID == Settings._instance.customers.current)
} try
{
customer.separator = Convert.ToChar(sep);
}
catch (FormatException ex)
{
MessageBox.Show(this, "Error while converting: " + ex.Message, "Could not parse");
}
catch (Exception ex)
{
MessageBox.Show(this, "Unknown Error: " + ex.Message, "Error");
}
}
} }