public void _06_Should_Remove_Setting_From_Repository_If_Set_To_Default_Value_For_User() { _settingManager.ChangeSettingForUser(1, "Language", "tr"); Assert.AreEqual("tr", _repository.FirstOrDefault(sv => sv.Name == "Language" && sv.UserId == 1).Value); _settingManager.ChangeSettingForUser(1, "Language", "fr"); Assert.AreEqual(null, _repository.FirstOrDefault(sv => sv.Name == "Language" && sv.UserId == 1)); _settingManager.ChangeSettingForUser(1, "Language", "en"); Assert.AreEqual("en", _repository.FirstOrDefault(sv => sv.Name == "Language" && sv.UserId == 1).Value); }
public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "") { if (!GlobalizationHelper.IsValidCultureCode(cultureName)) { throw new AbpException("Unknown language: " + cultureName + ". It must be a valid culture!"); } Response.Cookies.Add( new HttpCookie(_webLocalizationConfiguration.CookieName, cultureName) { Expires = Clock.Now.AddYears(2) } ); if (AbpSession.UserId.HasValue) { SettingManager.ChangeSettingForUser( AbpSession.ToUserIdentifier(), LocalizationSettingNames.DefaultLanguage, cultureName ); } if (Request.IsAjaxRequest()) { return(Json(new AjaxResponse(), JsonRequestBehavior.AllowGet)); } if (!string.IsNullOrWhiteSpace(returnUrl) && Request.Url != null && AbpUrlHelper.IsLocalUrl(Request.Url, returnUrl)) { return(Redirect(returnUrl)); } return(Redirect(Request.ApplicationPath)); }
public void Should_Change_Setting_Values() { var session = new MyChangableSession(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager(), new ObjectThreadSafeCacheFactoryService()); settingManager.SettingStore = new MemorySettingStore(); settingManager.Session = session; //Application level changes settingManager.ChangeSettingForApplication(MyAppLevelSetting, "53"); settingManager.ChangeSettingForApplication(MyAppLevelSetting, "54"); settingManager.ChangeSettingForApplication(MyAllLevelsSetting, "application level changed value"); settingManager.SettingStore.GetSettingOrNull(null, null, MyAppLevelSetting).Value.ShouldBe("54"); settingManager.GetSettingValue <int>(MyAppLevelSetting).ShouldBe(54); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level changed value"); //Tenant level changes session.TenantId = Guid.NewGuid(); settingManager.ChangeSettingForTenant(session.TenantId.Value, MyAllLevelsSetting, "tenant 1 changed value"); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("tenant 1 changed value"); //User level changes session.UserId = Guid.NewGuid(); settingManager.ChangeSettingForUser(session.UserId.Value, MyAllLevelsSetting, "user 1 changed value"); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("user 1 changed value"); }
public void Should_Change_Setting_Values() { var session = new MyChangableSession(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager()); settingManager.SettingStore = new MemorySettingStore(); settingManager.Session = session; //Application level changes settingManager.ChangeSettingForApplication(MyAppLevelSetting, "53"); settingManager.ChangeSettingForApplication(MyAllLevelsSetting, "application level changed value"); settingManager.GetSettingValue <int>(MyAppLevelSetting).ShouldBe(53); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level changed value"); //Tenant level changes session.TenantId = 1; settingManager.ChangeSettingForTenant(1, MyAllLevelsSetting, "tenant 1 changed value"); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("tenant 1 changed value"); //User level changes session.UserId = 1; settingManager.ChangeSettingForUser(1, MyAllLevelsSetting, "user 1 changed value"); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("user 1 changed value"); }
public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "") { if (!GlobalizationHelper.IsValidCultureCode(cultureName)) { throw new AbpException("Unknown language: " + cultureName + ". It must be a valid culture!"); } var cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName, cultureName)); Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName, cookieValue, new CookieOptions { Expires = Clock.Now.AddYears(2), HttpOnly = true } ); if (AbpSession.UserId.HasValue) { SettingManager.ChangeSettingForUser( AbpSession.ToUserIdentifier(), LocalizationSettingNames.DefaultLanguage, cultureName ); } if (Request.IsAjaxRequest()) { return(Json(new AjaxResponse())); } if (!string.IsNullOrWhiteSpace(returnUrl)) { var escapedReturnUrl = Uri.EscapeDataString(returnUrl); var localPath = UrlHelper.LocalPathAndQuery(escapedReturnUrl, Request.Host.Host, Request.Host.Port); if (!string.IsNullOrWhiteSpace(localPath)) { var unescapedLocalPath = Uri.UnescapeDataString(localPath); if (Url.IsLocalUrl(unescapedLocalPath)) { return(LocalRedirect(unescapedLocalPath)); } } } return(LocalRedirect("/")); //TODO: Go to app root }
public async Task UpdateNotificationSettings(UpdateNotificationSettingsInput input) { SettingManager.ChangeSettingForUser(InfrastructureSession.ToUserIdentifier(), NotificationSettingNames.ReceiveNotifications, input.ReceiveNotifications.ToString()); foreach (var notification in input.Notifications) { if (notification.IsSubscribed) { await _notificationSubscriptionManager.SubscribeAsync(InfrastructureSession.ToUserIdentifier(), notification.Name); } else { await _notificationSubscriptionManager.UnsubscribeAsync(InfrastructureSession.ToUserIdentifier(), notification.Name); } } }
public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "") { if (!GlobalizationHelper.IsValidCultureCode(cultureName)) { throw new AbpException("Unknown language: " + cultureName + ". It must be a valid culture!"); } Response.Cookies.Add( new HttpCookie(WebLocalizationConfiguration.CookieName, cultureName) { Expires = Clock.Now.AddYears(2), Path = Request.ApplicationPath } ); if (AbpSession.UserId.HasValue) { SettingManager.ChangeSettingForUser( AbpSession.ToUserIdentifier(), LocalizationSettingNames.DefaultLanguage, cultureName ); } if (Request.IsAjaxRequest()) { return(Json(new AjaxResponse(), JsonRequestBehavior.AllowGet)); } if (!string.IsNullOrWhiteSpace(returnUrl)) { var escapedReturnUrl = Uri.EscapeUriString(returnUrl); var localPath = UrlHelper.LocalPathAndQuery(escapedReturnUrl, Request.Url.Host, Request.Url.Port); if (!string.IsNullOrWhiteSpace(localPath)) { var unescapedLocalPath = Uri.UnescapeDataString(localPath); if (Url.IsLocalUrl(unescapedLocalPath)) { return(Redirect(unescapedLocalPath)); } } } return(Redirect(Request.ApplicationPath)); }
protected void SetCulture(string cultureName) { Response.Cookies.Add( new HttpCookie("Abp.Localization.CultureName", cultureName) { Expires = Clock.Now.AddYears(2) } ); if (AbpSession.UserId.HasValue) { SettingManager.ChangeSettingForUser( AbpSession.ToUserIdentifier(), LocalizationSettingNames.DefaultLanguage, cultureName ); } }
public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "") { if (!GlobalizationHelper.IsValidCultureCode(cultureName)) { throw new CodeZeroException("Unknown language: " + cultureName + ". It must be a valid culture!"); } var cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName, cultureName)); Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName, cookieValue, new CookieOptions { Expires = Clock.Now.AddYears(2), HttpOnly = true } ); if (CodeZeroSession.UserId.HasValue) { SettingManager.ChangeSettingForUser( CodeZeroSession.ToUserIdentifier(), LocalizationSettingNames.DefaultLanguage, cultureName ); } if (Request.IsAjaxRequest()) { return(Json(new AjaxResponse())); } if (!string.IsNullOrWhiteSpace(returnUrl) && CodeZeroUrlHelper.IsLocalUrl(Request, returnUrl)) { return(Redirect(returnUrl)); } return(Redirect("/")); //TODO: Go to app root }
public void Should_Delete_Setting_Values_On_Default_Value() { var session = new MyChangableSession(); var store = new MemorySettingStore(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager(), new ObjectThreadSafeCacheFactoryService()); settingManager.SettingStore = store; settingManager.Session = session; session.TenantId = Guid.NewGuid(); session.UserId = Guid.NewGuid(); //We can get user's personal stored value store.GetSettingOrNull(null, session.UserId, MyAllLevelsSetting).ShouldNotBe(null); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("user 1 stored value"); //This will delete setting for the user since it's same as tenant's setting value settingManager.ChangeSettingForUser(session.UserId.Value, MyAllLevelsSetting, "tenant 1 stored value"); store.GetSettingOrNull(null, session.UserId, MyAllLevelsSetting).ShouldBe(null); //We can get tenant's setting value store.GetSettingOrNull(session.TenantId, null, MyAllLevelsSetting).ShouldNotBe(null); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("tenant 1 stored value"); //This will delete setting for tenant since it's same as application's setting value settingManager.ChangeSettingForTenant(session.TenantId.Value, MyAllLevelsSetting, "application level stored value"); store.GetSettingOrNull(null, session.UserId, MyAllLevelsSetting).ShouldBe(null); //We can get application's value store.GetSettingOrNull(null, null, MyAllLevelsSetting).ShouldNotBe(null); settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level stored value"); //This will delete setting for application since it's same as the default value of the setting settingManager.ChangeSettingForApplication(MyAllLevelsSetting, "application level default value"); store.GetSettingOrNull(null, null, MyAllLevelsSetting).ShouldBe(null); //Now, there is no setting value, default value should return settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level default value"); }