private void SaveHttpContext(HttpContext httpContext)
        {
            var userLocale    = UserLocale.Lookup(httpContext);
            var requestCookie = httpContext.Request.Cookies[UserLocale.CookieName];

            if (userLocale != null)
            {
                if (requestCookie != null)
                {
                    if (requestCookie != userLocale.ToString())
                    {
                        httpContext.Response.Cookies.Append(UserLocale.CookieName, userLocale.ToString());
                    }
                    else
                    {
                        // No change required.
                    }
                }
                else // requestCookie == null
                {
                    httpContext.Response.Cookies.Append(UserLocale.CookieName, userLocale.ToString());
                }
            }
            else // userLocale == null
            {
                if (requestCookie != null)
                {
                    httpContext.Response.Cookies.Delete(UserLocale.CookieName);
                }
                else // requestCookie == null
                {
                    // No change required.
                }
            }
        }
Example #2
0
        public static UserLocale Parse(string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                throw new ArgumentNullException(nameof(value));
            }

            var userLocal = new UserLocale(value);

            return(userLocal);
        }
        private void LoadHttpContext(HttpContext httpContext)
        {
            var requestCookie = httpContext.Request.Cookies[UserLocale.CookieName];

            if (requestCookie != null)
            {
                var userLocale = UserLocale.Parse(requestCookie);
                userLocale.AddTo(httpContext);
            }
            else
            {
                var timeZoneId = GetTimeZoneId(httpContext);
                var userLocale = new UserLocale(timeZoneId);
                userLocale.AddTo(httpContext);
            }
        }