public CultureSelectorResult GetCulture(HttpContextBase context) { if (!_isEvaluated) { _isEvaluated = true; _evaluatedResult = EvaluateResult(context); } return(_evaluatedResult); }
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); }