public CommonSettingsProvider(IServerApi serverApi, INPerson person) { INSettings personalSettings = serverApi.GetPersonalSettings(); _person = person; ReloadSettings(personalSettings); }
private void ReloadSettings(INSettings settings) { if (_person == null) { return; } var newSettings = new Dictionary <string, CommonSettings>(); foreach (var personalSetting in settings.PersonalSettings.SelectMany(x => x.Value.Values)) { if (!newSettings.TryGetValue(personalSetting.Key, out var value)) { value = new CommonSettings(); newSettings[personalSetting.Key] = value; } value.Personal = personalSetting.Value; } foreach (var orgUnitId in _person.AllOrgUnits) { if (!settings.CommonSettings.TryGetValue(orgUnitId, out var commonSettings)) { continue; } foreach (var setting in commonSettings.Values) { if (!newSettings.TryGetValue(setting.Key, out var value)) { value = new CommonSettings(); newSettings[setting.Key] = value; } value.Common.Add(setting.Value); } } UpdateSettings(newSettings); }