private static void Migrate(ServiceProvider sp, ConfigurationDbContext configurationContext, ApplicationDbContext identityContext)
        {
            if (!configurationContext.IdentityResources.AnyAsync().Result)
            {
                configurationContext.IdentityResources.Add(new IdentityResources.OpenId().ToEntity());
                configurationContext.IdentityResources.Add(new IdentityResources.Email().ToEntity());
                configurationContext.IdentityResources.Add(new IdentityResources.Profile().ToEntity());

                configurationContext.SaveChanges();
            }

            if (!configurationContext.ApiResources.AnyAsync().Result)
            {
                var api = new ApiResource("i_api", "Web Api call")
                {
                    ApiSecrets = { new Secret("secret".Sha256()) },
                    Scopes     =
                    {
                        "i_api.full",
                        "i_api.read"
                    },
                    UserClaims =
                    {
                        ClaimTypes.NameIdentifier,
                        ClaimTypes.Name,
                        ClaimTypes.Email,
                        ClaimTypes.Role,
                        JwtClaimTypes.Role,
                        JwtClaimTypes.Name,
                        JwtClaimTypes.Email
                    }
                };
                configurationContext.ApiResources.Add(api.ToEntity());

                configurationContext.SaveChanges();
            }

            if (!configurationContext.Clients.AnyAsync().Result)
            {
                List <Client> clients = new List <Client>()
                {
                    new Client
                    {
                        ClientId      = "mvc",
                        ClientSecrets = { new Secret("secret".Sha256()) },

                        AllowedGrantTypes = GrantTypes.Code,

                        // where to redirect to after login
                        RedirectUris = { "http://localhost:52484/signin-oidc" },

                        // where to redirect to after logout
                        PostLogoutRedirectUris = { "http://localhost:52484/signout-callback-oidc" },

                        AllowedScopes = new List <string>
                        {
                            IdentityServerConstants.StandardScopes.OpenId,
                            IdentityServerConstants.StandardScopes.Profile,
                            IdentityServerConstants.StandardScopes.Email,
                            "i_api"
                        }
                    }
                };

                foreach (var client in clients)
                {
                    configurationContext.Clients.Add(client.ToEntity());
                }

                configurationContext.SaveChanges();
            }
        }