示例#1
0
        private async Task Request(object sender, EventArgs e)
        {
            var application = sender as HttpApplication;

            if (application == null)
            {
                return;
            }

            var context = application.Context;
            var lang    = context.Request.Headers["Accept-Language"];

            // eat the cookie (if any) and set the culture
            if (!string.IsNullOrEmpty(lang))
            {
                var cultureName = lang.Split(',', ';')[0];

                CultureInfo culture;
                try
                {
                    culture = new CultureInfo(cultureName);
                }
                catch (CultureNotFoundException)
                {
                    var query = new DomainCultureQuery(new DefaultCtx(),
                                                       (TypeCache <DomainCultureQuery, string, LangCulture[]>)
                                                       Startup.HttpConfiguration.DependencyResolver.GetService(
                                                           typeof(TypeCache <DomainCultureQuery, string, LangCulture[]>)),
                                                       new LangResourceSingleQuery(new DefaultCtx()));

                    var langCultures = await query.Execute(context.Request.UrlReferrer?.Authority);

                    culture = new CultureInfo(langCultures.First().Key);
                }
                Thread.CurrentThread.CurrentCulture   = culture;
                Thread.CurrentThread.CurrentUICulture = culture;
            }
        }
        public async Task <IHttpActionResult> Get()
        {
            var langCultures = await _domainCultureQuery.Execute(Request.Headers.Referrer?.Authority);

            return(Ok(langCultures));
        }