public TracerouteHostViewModel(IDialogCoordinator instance) { dialogCoordinator = instance; InterTabClient = new DragablzTracerouteInterTabClient(); TabItems = new ObservableCollection <DragablzTabItem>() { new DragablzTabItem(LocalizationManager.GetStringByKey("String_Header_NewTab"), new TracerouteView(_tabId), _tabId) }; // Load profiles if (TracerouteProfileManager.Profiles == null) { TracerouteProfileManager.Load(); } _tracerouteProfiles = CollectionViewSource.GetDefaultView(TracerouteProfileManager.Profiles); _tracerouteProfiles.GroupDescriptions.Add(new PropertyGroupDescription("Group")); _tracerouteProfiles.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending)); _tracerouteProfiles.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending)); _tracerouteProfiles.Filter = o => { if (string.IsNullOrEmpty(Search)) { return(true); } TracerouteProfileInfo info = o as TracerouteProfileInfo; string search = Search.Trim(); // Search by: Tag if (search.StartsWith(tagIdentifier, StringComparison.OrdinalIgnoreCase)) { if (string.IsNullOrEmpty(info.Tags)) { return(false); } else { return(info.Tags.Replace(" ", "").Split(';').Any(str => search.Substring(tagIdentifier.Length, search.Length - tagIdentifier.Length).IndexOf(str, StringComparison.OrdinalIgnoreCase) > -1)); } } else // Search by: Name, Hostname { return(info.Name.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1 || info.Host.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1); } }; LoadSettings(); _isLoading = false; }
private async void ImportSettingsAction() { MetroDialogSettings settings = AppearanceManager.MetroDialog; settings.AffirmativeButtonText = LocalizationManager.GetStringByKey("String_Button_Continue"); settings.NegativeButtonText = LocalizationManager.GetStringByKey("String_Button_Cancel"); settings.DefaultButtonFocus = MessageDialogResult.Affirmative; string message = LocalizationManager.GetStringByKey("String_SelectedSettingsAreOverwritten"); if (ImportApplicationSettingsExists && (ImportEverything || ImportApplicationSettings)) { message += Environment.NewLine + Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_ApplicationIsRestartedAfterwards")); } if (await dialogCoordinator.ShowMessageAsync(this, LocalizationManager.GetStringByKey("String_Header_AreYouSure"), message, MessageDialogStyle.AffirmativeAndNegative, settings) == MessageDialogResult.Affirmative) { List <ImportExportManager.ImportExportOptions> importOptions = new List <ImportExportManager.ImportExportOptions>(); if (ImportApplicationSettingsExists && (ImportEverything || ImportApplicationSettings)) { importOptions.Add(ImportExportManager.ImportExportOptions.ApplicationSettings); } if (ImportNetworkInterfaceProfilesExists && (ImportEverything || ImportNetworkInterfaceProfiles)) { importOptions.Add(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles); // Load network interface profile (option: add) if (NetworkInterfaceProfileManager.Profiles == null) { NetworkInterfaceProfileManager.Load(!ImportOverrideNetworkInterfaceProfiles); } } if (ImportIPScannerProfilesExists && (ImportEverything || ImportIPScannerProfiles)) { importOptions.Add(ImportExportManager.ImportExportOptions.IPScannerProfiles); // Load ip scanner profiles (option: add) if (IPScannerProfileManager.Profiles == null) { IPScannerProfileManager.Load(!ImportOverrideIPScannerProfiles); } } if (ImportPingProfilesExists && (ImportEverything || ImportPingProfiles)) { importOptions.Add(ImportExportManager.ImportExportOptions.PingProfiles); // Load ping profiles (option: add) if (PingProfileManager.Profiles == null) { PingProfileManager.Load(!ImportOverridePingProfiles); } } if (ImportTracerouteProfilesExists && (ImportEverything || ImportTracerouteProfiles)) { importOptions.Add(ImportExportManager.ImportExportOptions.TracerouteProfiles); // Load traceroute profiles (option: add) if (TracerouteProfileManager.Profiles == null) { TracerouteProfileManager.Load(!ImportOverrideTracerouteProfiles); } } if (ImportPortScannerProfilesExists && (ImportEverything || ImportPortScannerProfiles)) { importOptions.Add(ImportExportManager.ImportExportOptions.PortScannerProfiles); // Load port scanner profiles (option: add) if (PortScannerProfileManager.Profiles == null) { PortScannerProfileManager.Load(!ImportOverridePortScannerProfiles); } } if (ImportRemoteDesktopSessionsExists && (ImportEverything || ImportRemoteDesktopSessions)) { importOptions.Add(ImportExportManager.ImportExportOptions.RemoteDesktopSessions); // Load remote desktop sessions (option: add) if (RemoteDesktopSessionManager.Sessions == null) { RemoteDesktopSessionManager.Load(!ImportOverrideRemoteDesktopSessions); } } if (ImportPuTTYSessionsExists && (ImportEverything || ImportPuTTYSessions)) { importOptions.Add(ImportExportManager.ImportExportOptions.PuTTYSessions); // Load remote desktop sessions (option: add) if (PuTTYSessionManager.Sessions == null) { RemoteDesktopSessionManager.Load(!ImportOverridePuTTYSessions); } } if (ImportWakeOnLANClientsExists && (ImportEverything || ImportWakeOnLANClients)) { importOptions.Add(ImportExportManager.ImportExportOptions.WakeOnLANClients); // Load WoL clients (option: add) if (WakeOnLANClientManager.Clients == null) { WakeOnLANClientManager.Load(!ImportOverrideWakeOnLANClients); } } // Import (copy) files from zip archive ImportExportManager.Import(ImportFilePath, importOptions); // Do the import (replace or add) if (importOptions.Contains(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles)) { NetworkInterfaceProfileManager.Import(ImportEverything || ImportOverrideNetworkInterfaceProfiles); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.IPScannerProfiles)) { IPScannerProfileManager.Import(ImportEverything || ImportOverrideIPScannerProfiles); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PortScannerProfiles)) { PortScannerProfileManager.Import(ImportEverything || ImportOverridePortScannerProfiles); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PingProfiles)) { PingProfileManager.Import(ImportEverything || ImportOverridePingProfiles); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.TracerouteProfiles)) { TracerouteProfileManager.Import(ImportEverything || ImportOverrideTracerouteProfiles); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.RemoteDesktopSessions)) { RemoteDesktopSessionManager.Import(ImportEverything || ImportOverrideRemoteDesktopSessions); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PuTTYSessions)) { PuTTYSessionManager.Import(ImportEverything || ImportOverridePuTTYSessions); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.WakeOnLANClients)) { WakeOnLANClientManager.Import(ImportEverything || ImportOverrideWakeOnLANClients); } // Show the user a message what happened if (!ImportExportManager.ForceRestart) { settings.AffirmativeButtonText = LocalizationManager.GetStringByKey("String_Button_OK"); message = LocalizationManager.GetStringByKey("String_SettingsSuccessfullyImported") + Environment.NewLine; if (importOptions.Contains(ImportExportManager.ImportExportOptions.NetworkInterfaceProfiles)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_NetworkInterfaceProfilesReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.IPScannerProfiles)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_IPScannerProfilesReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PortScannerProfiles)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_PortScannerProfilesReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PingProfiles)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_PingProfilesReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.TracerouteProfiles)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_TracerouteProfilesReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.RemoteDesktopSessions)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_RemoteDesktopSessionsReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.PuTTYSessions)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_PuTTYSessionsReloaded")); } if (importOptions.Contains(ImportExportManager.ImportExportOptions.WakeOnLANClients)) { message += Environment.NewLine + string.Format("* {0}", LocalizationManager.GetStringByKey("String_WakeOnLANClientsReloaded")); } await dialogCoordinator.ShowMessageAsync(this, LocalizationManager.GetStringByKey("String_Header_Success"), message, MessageDialogStyle.Affirmative, settings); return; } // Close this view (this will restart the application) CloseAction(); } }