Exemple #1
0
        public async Task <T?> ShowDataTransferDialog <T>(DataTransferViewModel <T> viewModel)
            where T : class
        {
            var dialog = new DataTransferDialog {
                DataContext = viewModel
            };
            Task <T>?task = null;

            // Ugly hack: we can't bind DialogResult to the ViewModel in XAML, so let's just do it here.
            viewModel.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(viewModel.DialogResult))
                {
                    dialog.DialogResult = viewModel.DialogResult;
                }
            };
            // Second ugly hack: only start the transfer when the dialog is shown. Without this,
            // there's a race condition: if the transfer fails immediately, we try to set DialogResult
            // before the dialog is shown, and that's ignored.
            dialog.Activated += (sender, args) =>
            {
                if (task is null)
                {
                    task = viewModel.TransferAsync();
                }
            };
            // TODO: We don't close the dialog if this has already failed. Check what's going on.
            var result = dialog.ShowDialog();

            return(result == true ? await task ! : null);
        }
Exemple #2
0
        public virtual async Task <IActionResult> Index()
        {
            var model = new DataTransferViewModel();

            model.ExistingData.Add(typeof(ApiResource).FriendlyName(), await this.ConfigurationDatabaseContext.ApiResources.CountAsync());
            model.ExistingData.Add(typeof(ApiResourceClaim).FriendlyName(), await this.ConfigurationDatabaseContext.ApiResourceClaims().CountAsync());
            model.ExistingData.Add(typeof(ApiResourceProperty).FriendlyName(), await this.ConfigurationDatabaseContext.ApiResourceProperties().CountAsync());
            model.ExistingData.Add(typeof(ApiResourceScope).FriendlyName(), await this.ConfigurationDatabaseContext.ApiResourceScopes().CountAsync());
            model.ExistingData.Add(typeof(ApiResourceSecret).FriendlyName(), await this.ConfigurationDatabaseContext.ApiResourceSecrets().CountAsync());
            model.ExistingData.Add(typeof(ApiScope).FriendlyName(), await this.ConfigurationDatabaseContext.ApiScopes.CountAsync());
            model.ExistingData.Add(typeof(ApiScopeClaim).FriendlyName(), await this.ConfigurationDatabaseContext.ApiScopeClaims().CountAsync());
            model.ExistingData.Add(typeof(ApiScopeProperty).FriendlyName(), await this.ConfigurationDatabaseContext.ApiScopeProperties().CountAsync());
            model.ExistingData.Add(typeof(Client).FriendlyName(), await this.ConfigurationDatabaseContext.Clients.CountAsync());
            model.ExistingData.Add(typeof(ClientCorsOrigin).FriendlyName(), await this.ConfigurationDatabaseContext.ClientCorsOrigins.CountAsync());
            model.ExistingData.Add(typeof(ClientClaim).FriendlyName(), await this.ConfigurationDatabaseContext.ClientClaims().CountAsync());
            model.ExistingData.Add(typeof(ClientGrantType).FriendlyName(), await this.ConfigurationDatabaseContext.ClientGrantTypes().CountAsync());
            model.ExistingData.Add(typeof(ClientIdPRestriction).FriendlyName(), await this.ConfigurationDatabaseContext.ClientIdentityProviderRestrictions().CountAsync());
            model.ExistingData.Add(typeof(ClientPostLogoutRedirectUri).FriendlyName(), await this.ConfigurationDatabaseContext.ClientPostLogoutRedirectUris().CountAsync());
            model.ExistingData.Add(typeof(ClientProperty).FriendlyName(), await this.ConfigurationDatabaseContext.ClientProperties().CountAsync());
            model.ExistingData.Add(typeof(ClientRedirectUri).FriendlyName(), await this.ConfigurationDatabaseContext.ClientRedirectUris().CountAsync());
            model.ExistingData.Add(typeof(ClientScope).FriendlyName(), await this.ConfigurationDatabaseContext.ClientScopes().CountAsync());
            model.ExistingData.Add(typeof(ClientSecret).FriendlyName(), await this.ConfigurationDatabaseContext.ClientSecrets().CountAsync());
            model.ExistingData.Add(typeof(IdentityProvider).FriendlyName(), await this.ConfigurationDatabaseContext.IdentityProviders.CountAsync());
            model.ExistingData.Add(typeof(IdentityResource).FriendlyName(), await this.ConfigurationDatabaseContext.IdentityResources.CountAsync());
            model.ExistingData.Add(typeof(IdentityResourceClaim).FriendlyName(), await this.ConfigurationDatabaseContext.IdentityResourceClaims().CountAsync());
            model.ExistingData.Add(typeof(IdentityResourceProperty).FriendlyName(), await this.ConfigurationDatabaseContext.IdentityResourceProperties().CountAsync());

            var identityContext = this.Facade.Identity.DatabaseContext;

            model.ExistingData.Add(typeof(IdentityRoleClaim <string>).FriendlyName(), await identityContext.RoleClaims.CountAsync());
            model.ExistingData.Add(typeof(IdentityUserClaim <string>).FriendlyName(), await identityContext.UserClaims.CountAsync());
            model.ExistingData.Add(typeof(IdentityUserLogin <string>).FriendlyName(), await identityContext.UserLogins.CountAsync());
            model.ExistingData.Add(typeof(IdentityUserRole <string>).FriendlyName(), await identityContext.UserRoles.CountAsync());
            model.ExistingData.Add(typeof(IdentityUserToken <string>).FriendlyName(), await identityContext.UserTokens.CountAsync());
            model.ExistingData.Add(typeof(Role).FriendlyName(), await identityContext.Roles.CountAsync());
            model.ExistingData.Add(typeof(User).FriendlyName(), await identityContext.Users.CountAsync());

            if (this.FeatureManager.IsEnabled(Feature.Saml))
            {
                model.ExistingData.Add(typeof(AssertionConsumerService).FriendlyName(), await this.SamlDatabaseContext.AssertionConsumerServices().CountAsync());
                model.ExistingData.Add(typeof(SamlClaimMap).FriendlyName(), await this.SamlDatabaseContext.ClaimsMapping().CountAsync());
                model.ExistingData.Add(typeof(ServiceProvider).FriendlyName(), await this.SamlDatabaseContext.ServiceProviders.CountAsync());
                model.ExistingData.Add(typeof(SigningCertificate).FriendlyName(), await this.SamlDatabaseContext.SigningCertificates().CountAsync());
                model.ExistingData.Add(typeof(SingleLogoutService).FriendlyName(), await this.SamlDatabaseContext.SingleLogoutServices().CountAsync());
            }

            if (this.FeatureManager.IsEnabled(Feature.WsFederation))
            {
                model.ExistingData.Add(typeof(RelyingParty).FriendlyName(), await this.WsFederationDatabaseContext.RelyingParties.CountAsync());
                model.ExistingData.Add(typeof(WsFederationClaimMap).FriendlyName(), await this.WsFederationDatabaseContext.ClaimMapping().CountAsync());
            }

            return(await Task.FromResult(this.View(model)));
        }