Skip to content

Commit ef79f94

Browse files
committed
translation, import (override or add) added
1 parent fafdd7e commit ef79f94

8 files changed

Lines changed: 84 additions & 36 deletions

File tree

Source/NETworkManager/Models/Settings/NetworkInterfaceProfileManager.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@ public static string GetProfilesFilePath()
1818
return Path.Combine(SettingsManager.GetSettingsLocation(), ProfilesFileName);
1919
}
2020

21-
public static void Load()
21+
public static void Load(bool deserialize = true)
2222
{
2323
Profiles = new ObservableCollection<NetworkInterfaceProfileInfo>();
2424

25-
Deserialize().ForEach(profile => AddProfile(profile));
26-
25+
if (deserialize)
26+
Deserialize().ForEach(profile => AddProfile(profile));
27+
2728
Profiles.CollectionChanged += Profiles_CollectionChanged;
2829
}
2930

30-
public static void Reload()
31+
public static void Import(bool overwrite)
3132
{
32-
Profiles.Clear();
33+
if (overwrite)
34+
Profiles.Clear();
3335

3436
Deserialize().ForEach(profile => AddProfile(profile));
3537
}

Source/NETworkManager/Models/Settings/WakeOnLANClientManager.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Generic;
22
using System.Collections.ObjectModel;
33
using System.IO;
4+
using System.Windows;
45
using System.Xml.Serialization;
56

67
namespace NETworkManager.Models.Settings
@@ -17,18 +18,20 @@ public static string GetClientsFilePath()
1718
return Path.Combine(SettingsManager.GetSettingsLocation(), ClientsFileName);
1819
}
1920

20-
public static void Load()
21+
public static void Load(bool deserialize = true)
2122
{
2223
Clients = new ObservableCollection<WakeOnLANClientInfo>();
2324

24-
Deserialize().ForEach(client => AddClient(client));
25+
if (deserialize)
26+
Deserialize().ForEach(client => AddClient(client));
2527

2628
Clients.CollectionChanged += WakeOnLANClients_CollectionChanged;
2729
}
2830

29-
public static void Reload()
31+
public static void Import(bool overwrite)
3032
{
31-
Clients.Clear();
33+
if (overwrite)
34+
Clients.Clear();
3235

3336
Deserialize().ForEach(client => AddClient(client));
3437
}

Source/NETworkManager/Resources/Localization/Resources.de-DE.xaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@
119119
<system:String x:Key="String_DefaultGateway">Standardgateway</system:String>
120120
<system:String x:Key="String_AddTemplate">Template hinzufügen</system:String>
121121
<system:String x:Key="String_EnterHostnameForClient">Geben Sie den Hostnamen ein, um den Client später zu identifizieren.</system:String>
122-
<system:String x:Key="String_AllRightReserved">Alle Rechte vorbehalten.</system:String>
123122
<system:String x:Key="String_Administrator">Administrator</system:String>
124123
<system:String x:Key="String_RestartAsAdministrator">Neustart als Administrator</system:String>
125124
<system:String x:Key="String_RestartAsAdministratorMessage">Zum ändern dieser Konfiguration werden administrative Rechte benötigt.</system:String>
@@ -224,7 +223,9 @@
224223
<system:String x:Key="String_WakeOnLANClientsReloaded">Wake on LAN Clients neu geladen</system:String>
225224
<system:String x:Key="String_NetworkInterfaceProfilesReloaded">Netzwerkinterface Profile neu geladen</system:String>
226225
<system:String x:Key="String_ComingSoon">Kommt demnächst!</system:String>
227-
226+
<system:String x:Key="String_Override">überschreiben</system:String>
227+
<system:String x:Key="String_Add">hinzufügen</system:String>
228+
228229
<!-- Buttons -->
229230
<system:String x:Key="String_Button_Change">Wechseln</system:String>
230231
<system:String x:Key="String_Button_Default">Standard</system:String>

Source/NETworkManager/Resources/Localization/Resources.en-US.xaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@
119119
<system:String x:Key="String_DefaultGateway">Default-Gateway</system:String>
120120
<system:String x:Key="String_AddTemplate">Add template</system:String>
121121
<system:String x:Key="String_EnterHostnameForClient">Enter the hostname to identify the client later.</system:String>
122-
<system:String x:Key="String_AllRightReserved">All rights reserved.</system:String>
123122
<system:String x:Key="String_Administrator">Administrator</system:String>
124123
<system:String x:Key="String_RestartAsAdministrator">Restart as Administrator</system:String>
125124
<system:String x:Key="String_RestartAsAdministratorMessage">Administrative rights are required to change this configuration.</system:String>
@@ -224,6 +223,8 @@
224223
<system:String x:Key="String_WakeOnLANClientsReloaded">Wake on LAN clients reloaded</system:String>
225224
<system:String x:Key="String_NetworkInterfaceProfilesReloaded">Network interface profiles reloaded</system:String>
226225
<system:String x:Key="String_ComingSoon">Coming Soon!</system:String>
226+
<system:String x:Key="String_Override">override</system:String>
227+
<system:String x:Key="String_Add">add</system:String>
227228

228229
<!-- Buttons -->
229230
<system:String x:Key="String_Button_Change">Change</system:String>

Source/NETworkManager/ViewModels/Applications/NetworkInterfaceViewModel.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public NetworkInterfaceInfo SelectedNetworkInterface
134134
DetailsDNSServer = value.DNSServer;
135135

136136
// Configuration
137-
if(value.DhcpEnabled)
137+
if (value.DhcpEnabled)
138138
{
139139
ConfigEnableDynamicIPAddress = true;
140140
}
@@ -146,7 +146,7 @@ public NetworkInterfaceInfo SelectedNetworkInterface
146146
ConfigGateway = value.IPv4Gateway.FirstOrDefault().ToString();
147147
}
148148

149-
if(value.DNSAutoconfigurationEnabled)
149+
if (value.DNSAutoconfigurationEnabled)
150150
{
151151
ConfigEnableDynamicDNS = true;
152152
}
@@ -155,7 +155,7 @@ public NetworkInterfaceInfo SelectedNetworkInterface
155155
ConfigEnableStaticDNS = true;
156156

157157
List<IPAddress> DNSServers = value.DNSServer.Where(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList();
158-
ConfigPrimaryDNSServer = DNSServers.Count > 0 ? DNSServers[0].ToString() : string.Empty ;
158+
ConfigPrimaryDNSServer = DNSServers.Count > 0 ? DNSServers[0].ToString() : string.Empty;
159159
ConfigSecondaryDNSServer = DNSServers.Count > 1 ? DNSServers[1].ToString() : string.Empty;
160160
}
161161

@@ -629,7 +629,9 @@ public NetworkInterfaceViewModel(IDialogCoordinator instance)
629629
LoadNetworkInterfaces();
630630

631631
// Load profiles
632-
NetworkInterfaceProfileManager.Load();
632+
if (NetworkInterfaceProfileManager.Profiles == null)
633+
NetworkInterfaceProfileManager.Load();
634+
633635
_networkInterfaceProfiles = CollectionViewSource.GetDefaultView(NetworkInterfaceProfileManager.Profiles);
634636

635637
LoadSettings();

Source/NETworkManager/ViewModels/Applications/WakeOnLanViewModel.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ public WakeOnLANViewModel(IDialogCoordinator instance)
153153
{
154154
dialogCoordinator = instance;
155155

156-
WakeOnLANClientManager.Load();
156+
if (WakeOnLANClientManager.Clients == null)
157+
WakeOnLANClientManager.Load();
158+
157159
_wakeOnLANClients = CollectionViewSource.GetDefaultView(WakeOnLANClientManager.Clients);
158160

159161
LoadSettings();

Source/NETworkManager/ViewModels/Settings/SettingsGeneralImportExportViewModel.cs

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,20 @@ public bool ImportNetworkInterfaceProfiles
119119
}
120120
}
121121

122+
private bool _importOverrideNetworkInterfaceProfiles = true;
123+
public bool ImportOverrideNetworkInterfaceProfiles
124+
{
125+
get { return _importOverrideNetworkInterfaceProfiles; }
126+
set
127+
{
128+
if (value == _importOverrideNetworkInterfaceProfiles)
129+
return;
130+
131+
_importOverrideNetworkInterfaceProfiles = value;
132+
OnPropertyChanged();
133+
}
134+
}
135+
122136
private bool _importWakeOnLANClientsExists;
123137
public bool ImportWakeOnLANClientsExists
124138
{
@@ -146,6 +160,20 @@ public bool ImportWakeOnLANClients
146160
OnPropertyChanged();
147161
}
148162
}
163+
164+
private bool _importOverrideWakeOnLANClients = true;
165+
public bool ImportOverrideWakeOnLANClients
166+
{
167+
get { return _importOverrideWakeOnLANClients; }
168+
set
169+
{
170+
if (value == _importOverrideWakeOnLANClients)
171+
return;
172+
173+
_importOverrideWakeOnLANClients = value;
174+
OnPropertyChanged();
175+
}
176+
}
149177
#endregion
150178

151179
#region Export
@@ -327,35 +355,44 @@ private async void ImportSettingsAction()
327355
if (ImportWakeOnLANClientsExists && (ImportEverything || ImportWakeOnLANClients))
328356
importOptions.Add(ImportExportManager.ImportExportOptions.WakeOnLANClients);
329357

358+
// Load network interface profile (option: add)
359+
if (NetworkInterfaceProfileManager.Profiles == null)
360+
NetworkInterfaceProfileManager.Load(!ImportOverrideNetworkInterfaceProfiles);
361+
362+
// Load WoL clients (option: add)
363+
if (WakeOnLANClientManager.Clients == null)
364+
WakeOnLANClientManager.Load(!ImportOverrideWakeOnLANClients);
365+
366+
// Import (copy) files from zip archive
330367
ImportExportManager.Import(ImportLocationSelectedPath, importOptions);
331368

332-
// Restart if application settings are changed
333-
if (ImportExportManager.ForceRestart)
334-
{
335-
CloseAction();
336-
}
337-
else
369+
// Do the import (replace or add)
370+
if (importOptions.Contains(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles))
371+
NetworkInterfaceProfileManager.Import(ImportEverything || ImportOverrideNetworkInterfaceProfiles);
372+
373+
if (importOptions.Contains(ImportExportManager.ImportExportOptions.WakeOnLANClients))
374+
WakeOnLANClientManager.Import(ImportEverything || ImportOverrideWakeOnLANClients);
375+
376+
// Show the user a message what happened
377+
if (!ImportExportManager.ForceRestart)
338378
{
339379
settings.AffirmativeButtonText = Application.Current.Resources["String_Button_OK"] as string;
340380

341381
message = Application.Current.Resources["String_SettingsSuccessfullyImported"] as string + Environment.NewLine;
342382

343383
if (importOptions.Contains(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles))
344-
{
345-
NetworkInterfaceProfileManager.Reload();
346-
347384
message += Environment.NewLine + string.Format("* {0}", Application.Current.Resources["String_NetworkInterfaceProfilesReloaded"] as string);
348-
}
349385

350386
if (importOptions.Contains(ImportExportManager.ImportExportOptions.WakeOnLANClients))
351-
{
352-
WakeOnLANClientManager.Reload();
353-
354387
message += Environment.NewLine + string.Format("* {0}", Application.Current.Resources["String_WakeOnLANClientsReloaded"] as string);
355-
}
356388

357389
await dialogCoordinator.ShowMessageAsync(this, Application.Current.Resources["String_Header_Success"] as string, message, MessageDialogStyle.Affirmative, settings);
390+
391+
return;
358392
}
393+
394+
// Close this view (this will restart the application)
395+
CloseAction();
359396
}
360397
}
361398

@@ -370,7 +407,7 @@ private async void ExportSettingsAction()
370407

371408
if (ApplicationSettingsExists && (ExportEverything || ExportApplicationSettings))
372409
exportOptions.Add(ImportExportManager.ImportExportOptions.ApplicationSettings);
373-
410+
374411
if (NetworkInterfaceProfilesExists && (ExportEverything || ExportNetworkInterfaceProfiles))
375412
exportOptions.Add(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles);
376413

Source/NETworkManager/Views/Settings/SettingsGeneralImportExportView.xaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@
7676
<ColumnDefinition Width="10" />
7777
<ColumnDefinition MinWidth="100" />
7878
</Grid.ColumnDefinitions>
79-
<RadioButton Grid.Column="0" Grid.Row="0" Content="Replace" />
80-
<RadioButton Grid.Column="2" Grid.Row="0" Content="Add" />
79+
<RadioButton Grid.Column="0" Grid.Row="0" GroupName="ImportNetworkInterfaceProfiles" Content="{DynamicResource String_Override}" IsEnabled="{Binding ImportNetworkInterfaceProfilesExists}" IsChecked="{Binding ImportOverrideNetworkInterfaceProfiles}" />
80+
<RadioButton Grid.Column="2" Grid.Row="0" GroupName="ImportNetworkInterfaceProfiles" Content="{DynamicResource String_Add}" IsEnabled="{Binding ImportNetworkInterfaceProfilesExists}" />
8181
</Grid>
8282
<CheckBox Grid.Column="0" Grid.Row="4" Content="{DynamicResource String_WakeOnLANClients}" IsEnabled="{Binding ImportWakeOnLANClientsExists}" IsChecked="{Binding ImportWakeOnLANClients}" />
8383
<Grid Grid.Column="2" Grid.Row="4" IsEnabled="{Binding ImportWakeOnLANClientsExists}">
@@ -86,8 +86,8 @@
8686
<ColumnDefinition Width="10" />
8787
<ColumnDefinition MinWidth="100" />
8888
</Grid.ColumnDefinitions>
89-
<RadioButton Grid.Column="0" Grid.Row="0" Content="Replace" />
90-
<RadioButton Grid.Column="2" Grid.Row="0" Content="Add" />
89+
<RadioButton Grid.Column="0" Grid.Row="0" GroupName="ImportWakeOnLANClients" Content="{DynamicResource String_Override}" IsEnabled="{Binding ImportWakeOnLANClientsExists}" IsChecked="{Binding ImportOverrideWakeOnLANClients}" />
90+
<RadioButton Grid.Column="2" Grid.Row="0" GroupName="ImportWakeOnLANClients" Content="{DynamicResource String_Add}" IsEnabled="{Binding ImportWakeOnLANClientsExists}" />
9191
</Grid>
9292
</Grid>
9393
</GroupBox>

0 commit comments

Comments
 (0)