private async void ConnectSessionAsAction() { CustomDialog customDialog = new CustomDialog() { Title = Application.Current.Resources["String_Header_ConnectAs"] as string }; RemoteDesktopSessionConnectViewModel connectRemoteDesktopSessionViewModel = new RemoteDesktopSessionConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Host }; if (instance.UseCredentials) { remoteDesktopSessionInfo.CustomCredentials = true; if (instance.CustomCredentials) { remoteDesktopSessionInfo.Username = instance.Username; remoteDesktopSessionInfo.Password = instance.Password; } else { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)instance.CredentialID); remoteDesktopSessionInfo.Username = credentialInfo.Username; remoteDesktopSessionInfo.Password = credentialInfo.Password; } } ConnectSession(remoteDesktopSessionInfo, instance.Name); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; }, true) { // Set name, hostname Name = SelectedSession.Name, Host = SelectedSession.Host, // Request credentials UseCredentials = true }; customDialog.Content = new RemoteDesktopSessionConnectDialog { DataContext = connectRemoteDesktopSessionViewModel }; ConfigurationManager.Current.FixAirspace = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }
private async void ConnectNewSession(string host = null) { CustomDialog customDialog = new CustomDialog() { Title = LocalizationManager.GetStringByKey("String_Header_Connect") }; RemoteDesktopSessionConnectViewModel remoteDesktopSessionConnectViewModel = new RemoteDesktopSessionConnectViewModel(instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; // Add host to history AddHostToHistory(instance.Host); // Create new remote desktop session info Models.RemoteDesktop.RemoteDesktopSessionInfo remoteDesktopSessionInfo = new Models.RemoteDesktop.RemoteDesktopSessionInfo { Hostname = instance.Host }; if (instance.UseCredentials) { remoteDesktopSessionInfo.CustomCredentials = true; if (instance.CustomCredentials) { remoteDesktopSessionInfo.Username = instance.Username; remoteDesktopSessionInfo.Password = instance.Password; } else { CredentialInfo credentialInfo = CredentialManager.GetCredentialByID((int)instance.CredentialID); remoteDesktopSessionInfo.Username = credentialInfo.Username; remoteDesktopSessionInfo.Password = credentialInfo.Password; } } Connect(remoteDesktopSessionInfo); }, instance => { dialogCoordinator.HideMetroDialogAsync(this, customDialog); ConfigurationManager.Current.FixAirspace = false; }) { Host = host }; customDialog.Content = new RemoteDesktopSessionConnectDialog { DataContext = remoteDesktopSessionConnectViewModel }; ConfigurationManager.Current.FixAirspace = true; await dialogCoordinator.ShowMetroDialogAsync(this, customDialog); }