void ReleaseDesignerOutlets() { if (CbAuthTokenMethod != null) { CbAuthTokenMethod.Dispose(); CbAuthTokenMethod = null; } if (BtnAddPostLogoutRedirectUri != null) { BtnAddPostLogoutRedirectUri.Dispose(); BtnAddPostLogoutRedirectUri = null; } if (BtnAddRedirectUri != null) { BtnAddRedirectUri.Dispose(); BtnAddRedirectUri = null; } if (BtnClose != null) { BtnClose.Dispose(); BtnClose = null; } if (BtnRemovePostLogoutRedirectUri != null) { BtnRemovePostLogoutRedirectUri.Dispose(); BtnRemovePostLogoutRedirectUri = null; } if (BtnRemoveRedirectUri != null) { BtnRemoveRedirectUri.Dispose(); BtnRemoveRedirectUri = null; } if (BtnSave != null) { BtnSave.Dispose(); BtnSave = null; } if (BtnSelectCertificate != null) { BtnSelectCertificate.Dispose(); BtnSelectCertificate = null; } if (PostLogoutUtiTableView != null) { PostLogoutUtiTableView.Dispose(); PostLogoutUtiTableView = null; } if (RedirectUriTableView != null) { RedirectUriTableView.Dispose(); RedirectUriTableView = null; } if (TxtCertificateDN != null) { TxtCertificateDN.Dispose(); TxtCertificateDN = null; } if (TxtLogoutUri != null) { TxtLogoutUri.Dispose(); TxtLogoutUri = null; } if (TxtPostLogoutRedirectUri != null) { TxtPostLogoutRedirectUri.Dispose(); TxtPostLogoutRedirectUri = null; } if (TxtRedirectUri != null) { TxtRedirectUri.Dispose(); TxtRedirectUri = null; } }
public override void AwakeFromNib() { base.AwakeFromNib(); OidcClientDto = new OidcClientDto { OidcClientMetadataDTO = new OidcClientMetadataDto { RedirectUris = new List <string>(), PostLogoutRedirectUris = new List <string>() } }; BtnSelectCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://", string.Empty); var cert = new X509Certificate2(); ActionHelper.Execute(delegate() { cert.Import(filePath); TxtCertificateDN.StringValue = cert.Subject; }); } }; BtnAddRedirectUri.Activated += (object sender, EventArgs e) => { if (string.IsNullOrEmpty(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert("Redirect Uri cannot be empty", "Alert"); return; } else if (!WebUtil.IsValidHttpUrl(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert("Redirect Uri is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.RedirectUris.Add(TxtRedirectUri.StringValue); ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); TxtRedirectUri.StringValue = (NSString)string.Empty; }; BtnAddPostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if (string.IsNullOrEmpty(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert("Post logout redirect Uri cannot be empty", "Alert"); return; } else if (!WebUtil.IsValidHttpUrl(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert("Post logout is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Add(TxtPostLogoutRedirectUri.StringValue); ReloadTableView(PostLogoutUtiTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); TxtPostLogoutRedirectUri.StringValue = (NSString)string.Empty; }; BtnRemoveRedirectUri.Activated += (object sender, EventArgs e) => { if (RedirectUriTableView.SelectedRows.Count > 0) { foreach (var row in RedirectUriTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.RedirectUris.RemoveAt((int)row); } ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); } }; BtnRemovePostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if (PostLogoutUtiTableView.SelectedRows.Count > 0) { foreach (var row in PostLogoutUtiTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.RemoveAt((int)row); } ReloadTableView(PostLogoutUtiTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); } }; BtnClose.Activated += (object sender, EventArgs e) => { OidcClientDto = null; this.Close(); NSApplication.SharedApplication.StopModalWithCode(0); }; this.BtnSave.Activated += (object sender, EventArgs e) => { var value = (NSString)CbAuthTokenMethod.SelectedValue; if (value == "private_key_jwt" && string.IsNullOrEmpty(TxtCertificateDN.StringValue)) { UIErrorHelper.ShowAlert("Please choose a valid certificate", "Alert"); } else if (string.IsNullOrEmpty(TxtLogoutUri.StringValue) || !WebUtil.IsValidHttpUrl(TxtLogoutUri.StringValue)) { UIErrorHelper.ShowAlert("Please enter valid logout uri", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.RedirectUris.Count == 0) { UIErrorHelper.ShowAlert("Please enter a valid redirect URI", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Count == 0) { UIErrorHelper.ShowAlert("Please enter a valid post logout redirect URI", "Alert"); } else { OidcClientDto.OidcClientMetadataDTO.LogoutUri = TxtLogoutUri.StringValue; OidcClientDto.OidcClientMetadataDTO.TokenEndpointAuthMethod = (NSString)CbAuthTokenMethod.SelectedValue; OidcClientDto.OidcClientMetadataDTO.CertSubjectDN = TxtCertificateDN.StringValue; this.Close(); NSApplication.SharedApplication.StopModalWithCode(1); } }; CbAuthTokenMethod.SelectItem(0); }