[chore:] combine split into four possible variants of merging
This commit is contained in:
@@ -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">
|
||||||
|
|||||||
@@ -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");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user