public void AddExternalIdentityProvider (object sender, EventArgs e)
		{
			ActionHelper.Execute (delegate() {
				var form = new AddNewExternalIdentityProviderController
				{
					ServerDto = GetServerDto(),
					TenantName = GetTenant()
				};
				var result = NSApplication.SharedApplication.RunModalForWindow (form.Window);
				if (result == VMIdentityConstants.DIALOGOK) {
					if (form.ExternalIdentityProviderDto != null) {
						UIErrorHelper.ShowAlert ("External IDP " + form.ExternalIdentityProviderDto.EntityID + " created successfully", "Information");
						Refresh (sender, e);
					}
				}
			});
		}
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();
            if (ExternalIdentityProviderDto.NameIDFormats == null)
            {
                ExternalIdentityProviderDto.NameIDFormats = new List <string> ();
            }

            if (ExternalIdentityProviderDto.SubjectFormats == null)
            {
                ExternalIdentityProviderDto.SubjectFormats = new Dictionary <string, string> ();
            }
            if (ExternalIdentityProviderDto.SsoServices == null)
            {
                ExternalIdentityProviderDto.SsoServices = new List <ServiceEndpointDto> ();
            }
            if (ExternalIdentityProviderDto.SloServices == null)
            {
                ExternalIdentityProviderDto.SloServices = new List <ServiceEndpointDto> ();
            }
            if (ExternalIdentityProviderDto.SigningCertificates == null)
            {
                ExternalIdentityProviderDto.SigningCertificates = new CertificateChainDto {
                    Certificates = new List <CertificateDto>()
                }
            }
            ;
            TxtEntityName.StringValue = (NSString)(string.IsNullOrEmpty(ExternalIdentityProviderDto.EntityID) ? string.Empty : ExternalIdentityProviderDto.EntityID);
            TxtAlias.StringValue      = (NSString)(string.IsNullOrEmpty(ExternalIdentityProviderDto.Alias) ? string.Empty : ExternalIdentityProviderDto.Alias);
            BtnJit.StringValue        = ExternalIdentityProviderDto.JitEnabled ? "1" : "0";
            ReloadTableView(NameFormatTableView, ExternalIdentityProviderDto.NameIDFormats);
            ReloadTableView(SubjectFormatTableView, ExternalIdentityProviderDto.SubjectFormats);
            ReloadCertificates();
            InitializeSsoServices();
            InitializeSloServices();

            BtnViewCertificate.Activated += (object sender, EventArgs e) =>
            {
                if (CertificateTableView.SelectedRows.Count > 0)
                {
                    var row         = CertificateTableView.SelectedRows.First();
                    var encoded     = ExternalIdentityProviderDto.SigningCertificates.Certificates[(int)row].Encoded;
                    var bytes       = System.Text.Encoding.ASCII.GetBytes(encoded);
                    var certificate = new X509Certificate2(bytes);
                    CertificateService.DisplayX509Certificate2(this, certificate);
                }
            };

            EditButton.Activated += (object sender, EventArgs e) => {
                ActionHelper.Execute(delegate() {
                    var form = new AddNewExternalIdentityProviderController
                    {
                        ServerDto  = ServerDto,
                        TenantName = TenantName,
                        ExternalIdentityProviderDto = ExternalIdentityProviderDto
                    };
                    var result = NSApplication.SharedApplication.RunModalForWindow(form.Window);
                    if (result == VMIdentityConstants.DIALOGOK)
                    {
                        if (form.ExternalIdentityProviderDto != null)
                        {
                            UIErrorHelper.ShowAlert("External IDP " + form.ExternalIdentityProviderDto.EntityID + " updated successfully", "Information");
                            Refresh(sender, e);
                        }
                    }
                });
            };
        }