Beispiel #1
0
        /// <summary>
        /// 保存一个外壳设置。
        /// </summary>
        /// <param name="settings">外壳设置信息。</param>
        void IShellSettingsManager.SaveSettings(ShellSettings settings)
        {
            settings.NotNull("settings");

            if (string.IsNullOrWhiteSpace(settings.Name))
            {
                throw new ArgumentException("外壳设置信息中的 Name 属性不能为空。", "settings");
            }

            Logger.Debug("保存租户 '{0}' 的外壳设置信息...", settings.Name);
            var filePath = Path.Combine(SettingsDirectoryName, settings.Name, SettingsFileName);

            Task.Factory.StartNew(
                () => _appDataFolder.CreateFile(filePath, ShellSettingsSerializer.ComposeSettings(settings)));

            Logger.Debug("外壳设置信息保存成功,标记租户 '{0}' 需要重新启动。", settings.Name);
            //使缓存失效。
            _simpleToken.IsCurrent = false;
            if (_events == null)
            {
                return;
            }
            foreach (var @event in _events.Value)
            {
                @event.Saved(settings);
            }
        }
Beispiel #2
0
        private IEnumerable <ShellSettings> LoadSettingsInternal()
        {
            var filePaths = _appDataFolder
                            .ListDirectories(SettingsDirectoryName)
                            .SelectMany(path => _appDataFolder.ListFiles(path))
                            .Where(path => string.Equals(Path.GetFileName(path), SettingsFileName, StringComparison.OrdinalIgnoreCase));

            return(filePaths.Select(filePath => ShellSettingsSerializer.ParseSettings(_appDataFolder.ReadFile(filePath))));
        }