DetermineProviderCultureResult(HttpContext httpContext)
        {
            IdentityBaseContext idbContext =
                httpContext.RequestServices
                .GetService <IdentityBaseContext>();

            ApplicationOptions appOptions =
                httpContext.RequestServices
                .GetService <ApplicationOptions>();

            if (idbContext.IsValid)
            {
                string culture = httpContext.Request.Query["culture"];

                if (String.IsNullOrWhiteSpace(culture) &&
                    idbContext.AuthorizationRequest != null)
                {
                    culture = idbContext
                              .AuthorizationRequest
                              .Parameters?
                              .GetValues("culture")?
                              .FirstOrDefault();
                }

                // TODO: Get all theme supported cultures

                if (String.IsNullOrWhiteSpace(culture))
                {
                    // TODO: Replace by client overrides for application options
                    culture = idbContext.ClientProperties.Culture ??
                              appOptions.DefaultCulture;
                }

                if (culture != null)
                {
                    return(new ProviderCultureResult(
                               new StringSegment(culture)));
                }
            }

            return(null);
        }