Обновление / изменение настроек со стороны клиента в AspnetBoilerplate с Angular - PullRequest
0 голосов
/ 08 марта 2019

При использовании Asp.net Boilerplate с использованием шаблона Angular / .net Core я вижу несколько функций на стороне клиента {get, getBoolean, getInt} в пространстве имен «setting», которые упрощают получение настроек, но я делаю не вижу документации по обновлению этих настроек.

var currentColor = abp.setting.get("SiteColorPreference");

https://aspnetboilerplate.com/Pages/Documents/Setting-Management

Я ожидал увидеть похожие методы set наряду с методами get. Что мне не хватает или я должен попытаться представить PR для этой функции? Кажется довольно странным иметь только геттеры и никаких сеттеров.

Конечно, я могу обновить пользовательский сервис и создать свою собственную функцию для обновления настроек, но похоже, что она должна быть встроена в каркас, как и методы get.

Возможно, это не правильное место, но цель вопроса в том, чтобы я хотел использовать локальное хранилище для пользовательских переменных. Например, пользователь может захотеть настроить пользовательский интерфейс и иметь настройку макета, или у каждого пользователя есть настройка для учетной записи, с которой он работает ... в двух словах, например, как поставщик профиля: https://docs.microsoft.com/en-us/dotnet/api/system.web.profile.sqlprofileprovider?view=netframework-4.7.2

1 Ответ

0 голосов
/ 08 марта 2019

Вам нужно создать Службу приложений для ваших требований.Давайте рассмотрим его для обновления выбора пользовательской темы.

Создайте службу приложения с именем UserPreferencesAppService и добавьте метод, подобный UpdateMyThemeId().И в вашем методе установите тему пользователя, как показано ниже:

 public class UserPreferencesAppService: ApplicationService {

    const string AppPermissions.Pages_User_Settings = "AppPermissions.Pages.User.Settings"

    [AbpAuthorize(AppPermissions.Pages_User_Settings)]
    private async Task UpdateMyThemeId(string themeId)
    {
           await SettingManager.ChangeSettingForUserAsync(user, "User.Theme.Selection", themeId);

    }
 }

PS: я написал код поверх моей головы.

...