public RemoteDesktopViewModel(IDialogCoordinator instance)
        {
            dialogCoordinator = instance;

            InterTabClient = new DragablzMainInterTabClient();
            TabContents    = new ObservableCollection <DragablzTabContent>();

            // Load sessions
            if (RemoteDesktopSessionManager.Sessions == null)
            {
                RemoteDesktopSessionManager.Load();
            }

            _remoteDesktopSessions = CollectionViewSource.GetDefaultView(RemoteDesktopSessionManager.Sessions);
            _remoteDesktopSessions.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            _remoteDesktopSessions.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            _remoteDesktopSessions.Filter = o =>
            {
                if (string.IsNullOrEmpty(Search))
                {
                    return(true);
                }

                RemoteDesktopSessionInfo info = o as RemoteDesktopSessionInfo;

                string search = Search.Trim();

                // Search by: Name
                return(info.Name.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0);
            };

            LoadSettings();

            _isLoading = false;
        }
Exemplo n.º 2
0
        public RemoteDesktopHostViewModel(IDialogCoordinator instance)
        {
            dialogCoordinator = instance;

            // Check if RDP 8.1 is available
            IsRDP8dot1Available = Models.RemoteDesktop.RemoteDesktop.IsRDP8dot1Available();

            if (IsRDP8dot1Available)
            {
                InterTabClient = new DragablzInterTabClient(ApplicationViewManager.Name.RemoteDesktop);

                TabItems = new ObservableCollection <DragablzTabItem>();

                // Load sessions
                if (RemoteDesktopSessionManager.Sessions == null)
                {
                    RemoteDesktopSessionManager.Load();
                }

                _remoteDesktopSessions = CollectionViewSource.GetDefaultView(RemoteDesktopSessionManager.Sessions);
                _remoteDesktopSessions.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
                _remoteDesktopSessions.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending));
                _remoteDesktopSessions.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
                _remoteDesktopSessions.Filter = o =>
                {
                    if (string.IsNullOrEmpty(Search))
                    {
                        return(true);
                    }

                    RemoteDesktopSessionInfo info = o as RemoteDesktopSessionInfo;

                    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;
        }
        public RemoteDesktopViewModel(IDialogCoordinator instance)
        {
            dialogCoordinator = instance;

            InterTabClient = new DragablzMainInterTabClient();
            TabContents    = new ObservableCollection <DragablzTabContent>();

            // Load sessions
            if (RemoteDesktopSessionManager.Sessions == null)
            {
                RemoteDesktopSessionManager.Load();
            }

            _remoteDesktopSessions = CollectionViewSource.GetDefaultView(RemoteDesktopSessionManager.Sessions);
            _remoteDesktopSessions.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            _remoteDesktopSessions.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            _remoteDesktopSessions.Filter = o =>
            {
                if (string.IsNullOrEmpty(Search))
                {
                    return(true);
                }

                RemoteDesktopSessionInfo info = o as RemoteDesktopSessionInfo;

                string search = Search.Trim();

                // Search for complete tag or by name
                if (search.StartsWith(tagIdentifier, StringComparison.OrdinalIgnoreCase))
                {
                    return(info.Tags.Replace(" ", "").Split(';').Any(str => search.Substring(tagIdentifier.Length, search.Length - tagIdentifier.Length).IndexOf(str, StringComparison.OrdinalIgnoreCase) > -1));
                }
                else
                {
                    return(info.Name.IndexOf(search, StringComparison.OrdinalIgnoreCase) > -1);
                }
            };

            LoadSettings();

            _isLoading = false;
        }
Exemplo n.º 4
0
        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();
            }
        }