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. } } }
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); } }