public CultureSelectorResult GetCulture(HttpContextBase context)
        {
            if (!_isEvaluated)
            {
                _isEvaluated     = true;
                _evaluatedResult = EvaluateResult(context);
            }

            return(_evaluatedResult);
        }
Пример #2
0
        public CultureSelectorResult GetCulture(HttpContextBase context)
        {
            var workContext = _workContextAccessor.GetContext();

            if (workContext == null ||
                workContext.HttpContext == null ||
                workContext.HttpContext.Request == null ||
                workContext.HttpContext.Request.UserLanguages == null)
            {
                return(null);
            }

            CultureSelectorResult result;

            if (_lastRequest != GetLastRequestHash(workContext))
            {
                var browserCultures =
                    workContext.HttpContext.Request.UserLanguages
                    .Select(ul => ul.Split(';').FirstOrDefault())
                    .Where(ul => !string.IsNullOrWhiteSpace(ul))
                    .ToArray();
                if (browserCultures.Length == 0)
                {
                    return(null);
                }

                var cultureName =
                    browserCultures
                    .Select(ParseCultureInfo)
                    .Where(ci => ci != null)
                    .Select(ci => ci.Name)
                    .FirstOrDefault();

                result = cultureName != null
                    ? new CultureSelectorResult {
                    Priority = 10, CultureName = cultureName
                }
                    : null;

                _lastRequest = GetLastRequestHash(workContext);
                _lastCulture = result;
            }
            else
            {
                result = _lastCulture;
            }

            return(result);
        }