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);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
        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));
        }
Beispiel #8
0
        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
        }
Beispiel #10
0
        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");
        }