public void ShowServerVersion() { UIErrorHelper.CheckedExec(delegate() { UIErrorHelper.ShowAlert(VMCACertificateService.GetVersion(ServerDTO), "Version"); }); }
/// <summary> /// Connects to server. /// </summary> public async void ConnectToServer() { _serverState = ServerState.Disconnected; ProgressWindowController pwc = new ProgressWindowController(); IntPtr session = new IntPtr(0); var servers = PscHighAvailabilityAppEnvironment.Instance.LocalData.GetServerArray(); var lwc = new LoginWindowController(servers); NSApplication.SharedApplication.BeginSheet(lwc.Window, this.Window, () => { }); nint result = NSApplication.SharedApplication.RunModalForWindow(lwc.Window); try { if (result == (nint)VMIdentityConstants.DIALOGOK) { _serverDto = GetServerDto(lwc); if (PingHost(_serverDto.Server)) { NSApplication.SharedApplication.BeginSheet(pwc.Window, this.Window as NSWindow, () => { }); session = NSApplication.SharedApplication.BeginModalSession(pwc.Window); var task = new Task(LoginToServer); task.Start(); if (task == await Task.WhenAny(task, Task.Delay(VMIdentityConstants.ServerTimeoutInSeconds * Constants.MilliSecsMultiplier))) { await task; if (!_isLoggedIn) { UIErrorHelper.ShowAlert(VMIdentityConstants.SERVER_CONNECT_ERROR, VMIdentityConstants.SERVER_CONNECT_ERROR); } else { PscHighAvailabilityAppEnvironment.Instance.LocalData.AddServer(lwc.Server); this.LoggedInLabel.StringValue = _serverDto.Upn; _serverState = ServerState.Connected; } } else { UIErrorHelper.ShowAlert(VMIdentityConstants.SERVER_TIMED_OUT, VMIdentityConstants.SERVER_TIMED_OUT); } } else { UIErrorHelper.ShowAlert(VMIdentityConstants.HOST_OR_IP_ADDRESS_NOT_REACHABLE, VMIdentityConstants.HOST_NOT_REACHABLE); } } } catch (Exception e) { UIErrorHelper.ShowAlert("", e.Message); } finally { if (pwc.ProgressBar != null) { pwc.ProgressBar.StopAnimation(pwc.Window); pwc.Window.Close(); NSApplication.SharedApplication.EndModalSession(session); } Window.EndSheet(lwc.Window); lwc.Dispose(); } SetConnectToolbar(_serverState); if (_isLoggedIn) { Initialize(); AsyncRefresh(); } }
public void LoginAsync() { try { var service = SnapInContext.Instance.ServiceGateway; var authToken = service.Authentication.Login(((AuthTokenDto)Tag).ServerDto, LoginDto, Constants.ClientId); Tag = authToken; AddServiceGatewayForServer(service, authToken); var key = authToken.ServerDto.ServerName; // + "-" + _loginDto.TenantName; SnapInContext.Instance.AuthTokenManager.SetAuthToken(authToken, key); AddTenantNode(authToken, new TenantDto { Name = LoginDto.TenantName }); IsLoggedIn = true; } catch (WebException exp) { if (((AuthTokenDto)Tag).ServerDto.TokenType == TokenType.SAML) { if (exp != null && exp.Response != null) { var response = exp.Response as HttpWebResponse; var resp = new StreamReader(exp.Response.GetResponseStream()).ReadToEnd(); UIErrorHelper.ShowAlert(resp, "Error"); return; } else { UIErrorHelper.ShowAlert(exp.Message, "Error"); return; } } else { if (exp.Response is HttpWebResponse) { var response = exp.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.Unauthorized) { var resp = new StreamReader(exp.Response.GetResponseStream()).ReadToEnd(); var error = JsonConvert.Deserialize <AuthErrorDto> (resp); if (error != null) { if (error.Error == AuthError.InvalidToken) { UIErrorHelper.ShowAlert("Token Expired", "Error"); } else { UIErrorHelper.ShowAlert(error.Details, "Error"); } } } else { if (response != null && response.StatusCode == HttpStatusCode.BadRequest && response.ContentType == "application/json;charset=UTF-8") { var resp = new StreamReader(response.GetResponseStream()).ReadToEnd(); var error = JsonConvert.Deserialize <AuthErrorDto> (resp); if (resp.Contains(AuthError.InvalidGrant)) { if (error != null) { UIErrorHelper.ShowAlert("Invalid username or password", "Error"); } else { UIErrorHelper.ShowAlert(exp.Message + " Details: " + resp, "Error"); } } else { UIErrorHelper.ShowAlert(exp.Message + " Details: " + resp, "Error"); } } else if (response != null && response.ContentType == "application/json") { var resp = new StreamReader(response.GetResponseStream()).ReadToEnd(); UIErrorHelper.ShowAlert(exp.Message + " Details: " + resp, "Error"); } else { UIErrorHelper.ShowAlert(exp.Message, "Error"); } } } else { UIErrorHelper.ShowAlert(exp.Message, "Error"); } } } catch (Exception exp) { UIErrorHelper.ShowAlert(exp.Message, "Error"); } }
public void ShowHttpTransport(object sender, EventArgs e) { ActionHelper.Execute(delegate() { UIErrorHelper.ShowAlert("ShowHttpTransport", "Alert"); }); }
/// <summary> /// Shows the error. /// </summary> private void ShowError() { UIErrorHelper.ShowAlert(exception.Message, Constants.RefreshFailure); }
public static void Execute(System.Action fn) { try { fn(); } catch (WebException exp) { if (exp.Response is HttpWebResponse) { var response = exp.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.Unauthorized) { var resp = new StreamReader(exp.Response.GetResponseStream()).ReadToEnd(); var error = JsonConvert.Deserialize <AuthErrorDto>(resp); if (error != null) { if (error.Error == AuthError.InvalidToken) { ActionHelper.Execute(delegate() { NSNotificationCenter.DefaultCenter.PostNotificationName("RefreshToken", new NSObject()); }); } else { UIErrorHelper.ShowAlert(error.Details, "Error"); } } } else { if (response != null && response.StatusCode == HttpStatusCode.BadRequest && response.ContentType == "application/json;charset=UTF-8") { var resp = new StreamReader(response.GetResponseStream()).ReadToEnd(); var error = JsonConvert.Deserialize <AuthErrorDto> (resp); if (resp.Contains(AuthError.InvalidGrant)) { if (error != null) { if (error.Error == AuthError.InvalidGrant) { NSNotificationCenter.DefaultCenter.PostNotificationName("LoggedInSessionExpired", new NSObject()); } else { UIErrorHelper.ShowAlert(error.Details, "Error"); } } else { UIErrorHelper.ShowAlert(error.Details, "Error"); } } else { UIErrorHelper.ShowAlert(error.Details, "Error"); } } else if (response != null && response.ContentType == "application/json") { var resp = new StreamReader(response.GetResponseStream()).ReadToEnd(); UIErrorHelper.ShowAlert(exp.Message + " Details: " + resp, "Error"); } else { UIErrorHelper.ShowAlert(exp.Message, "Error"); } } } else { UIErrorHelper.ShowAlert(exp.Message, "Error"); } } catch (Exception exp) { UIErrorHelper.ShowAlert(exp.Message, "Error"); } }
public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= (nint)0) { if (ds is NodesListView) { string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName; switch (data) { case "Private Entities": NSMenuItem addPrivateEntity = new NSMenuItem("Add Private Entity", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsPrivateKeysNode).AddPrivateKeyHandler); menu.AddItem(addPrivateEntity); break; case "Secret Keys": NSMenuItem createCertificate = new NSMenuItem("Add Secret Key", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsSecretKeysNode).AddSecretKey); menu.AddItem(createCertificate); break; case "Trusted Certs": NSMenuItem createSigningRequest = new NSMenuItem("Create Certificate", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsTrustedCertsNode).AddCertificate); menu.AddItem(createSigningRequest); break; default: break; } } else if (ds is CertificateDetailsListView) { CertificateDetailsListView lw = ds as CertificateDetailsListView; CertDTO cert = lw.Entries [(int)_selectedRow]; NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => CertificateService.DisplayX509Certificate2(this, cert.Cert)); menu.AddItem(showCert); NSMenuItem deleteEntry = new NSMenuItem("Delete", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { if (UIErrorHelper.ConfirmDeleteOperation("Are you sure?") == true) { using (var session = new VecsStoreSession(lw.ServerDto.VecsClient, lw.Store, "")) { session.DeleteCertificate(cert.Alias); } lw.Entries.Remove(cert); UIErrorHelper.ShowAlert("", "Successfully deleted the entry."); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadServerData", this); } }); }); menu.AddItem(deleteEntry); } else if (ds is SecretKeysListView) { SecretKeysListView lw = ds as SecretKeysListView; CertDTO cert = lw.Entries[(int)_selectedRow]; NSMenuItem deleteEntry = new NSMenuItem("Delete", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { if (UIErrorHelper.ConfirmDeleteOperation("Are you sure?") == true) { using (var session = new VecsStoreSession(lw.ServerDto.VecsClient, lw.Store, "")) { session.DeleteCertificate(cert.Alias); } lw.Entries.Remove(cert); UIErrorHelper.ShowAlert("", "Successfully deleted the entry."); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadServerData", this); } }); }); menu.AddItem(deleteEntry); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } return(base.MenuForEvent(theEvent)); }