/// <summary> /// Gets the settings definitions by names /// </summary> /// <param name="settingNames"></param> /// <returns></returns> public async Task <SettingsOutput> GetSettingsOptions(params string[] settingNames) { var settings = _definitionManager.GetAllSettingDefinitions().Where(a => a.Scopes != SettingScopes.User).ToList(); var settingsList = new List <SettingInputDto>(); var output = new SettingsOutput(); foreach (var settingName in settingNames) { var settingDefinition = settings.FirstOrDefault(a => a.Name == settingName); if (settingDefinition == null) { continue; } var value = await _settingManager.GetSettingValueAsync(settingDefinition.Name); var setting = new SettingInputDto() { Key = settingDefinition.Name, DisplayName = settingDefinition.DisplayName != null?settingDefinition.DisplayName.Localize(_localizationContext) : settingDefinition.Name, Value = value, DefaultValue = settingDefinition.DefaultValue, Description = settingDefinition.Description != null?settingDefinition.Description.Localize(_localizationContext) : "", SettingScopes = settingDefinition.Scopes }; settingsList.Add(setting); } output.Settings = settingsList; return(output); }
public bool Read(SettingsOutput message) { _isUseWholeNumbers = message.UseWholeNumbers; OnPropertyChanged(nameof(IsUseWholeNumbers)); _isUseNumericKeyboard = message.UseNumericKeyboard; OnPropertyChanged(nameof(IsUseNumericKeyboard)); return(true); }
/// <summary> /// Implementation of <see cref="VersionCache{TKey, TData}"/>. /// </summary> protected override async Task <(SettingsForClient data, string version)> GetDataFromSource(int tenantId, CancellationToken cancellation) { var repo = _repoFactory.GetRepository(tenantId); SettingsOutput settingsResult = await repo.Settings__Load(cancellation); var version = settingsResult.Version.ToString(); var generalSettings = settingsResult.GeneralSettings; var financialSettings = settingsResult.FinancialSettings; var singleBusinessUnitId = settingsResult.SingleBusinessUnitId; var featureFlags = settingsResult.FeatureFlags; // Prepare the settings for client var forClient = new SettingsForClient(); foreach (var forClientProp in typeof(SettingsForClient).GetProperties()) { var settingsProp = typeof(GeneralSettings).GetProperty(forClientProp.Name); if (settingsProp != null) { var value = settingsProp.GetValue(generalSettings); forClientProp.SetValue(forClient, value); } } // Single Business Unit Id forClient.SingleBusinessUnitId = singleBusinessUnitId; // Financial Settings forClient.FunctionalCurrencyId = financialSettings.FunctionalCurrencyId; forClient.TaxIdentificationNumber = financialSettings.TaxIdentificationNumber; forClient.ArchiveDate = financialSettings.ArchiveDate ?? DateTime.MinValue; forClient.FunctionalCurrencyDecimals = financialSettings.FunctionalCurrency.E ?? 0; forClient.FunctionalCurrencyName = financialSettings.FunctionalCurrency.Name; forClient.FunctionalCurrencyName2 = financialSettings.FunctionalCurrency.Name2; forClient.FunctionalCurrencyName3 = financialSettings.FunctionalCurrency.Name3; forClient.FunctionalCurrencyDescription = financialSettings.FunctionalCurrency.Description; forClient.FunctionalCurrencyDescription2 = financialSettings.FunctionalCurrency.Description2; forClient.FunctionalCurrencyDescription3 = financialSettings.FunctionalCurrency.Description3; // Language forClient.PrimaryLanguageName = GetCultureDisplayName(forClient.PrimaryLanguageId); forClient.SecondaryLanguageName = GetCultureDisplayName(forClient.SecondaryLanguageId); forClient.TernaryLanguageName = GetCultureDisplayName(forClient.TernaryLanguageId); // Feature flags forClient.FeatureFlags = featureFlags.ToDictionary(e => e.Key, e => e.Value); return(forClient, version); }