public virtual void SaveSettings(ShellSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }
            if (String.IsNullOrEmpty(settings.Name))
            {
                throw new ArgumentException("The Name property of the supplied ShellSettings object is null or empty; the settings cannot be saved.", "settings");
            }

            Logger.Debug("Saving ShellSettings for tenant '{0}'...", settings.Name);
            var content  = ShellSettingsSerializer.ComposeSettings(settings);
            var filePath = _fileSystem.Combine(settings.Name, Constants.ShellSettingsFileName);
            var file     = _fileSystem.FileExists(filePath) ? _fileSystem.GetFile(filePath) : _fileSystem.CreateFile(filePath);

            using (var stream = file.OpenWrite()) {
                using (var writer = new StreamWriter(stream)) {
                    writer.Write(content);
                }
            }

            Logger.Debug("ShellSettings saved successfully; flagging tenant '{0}' for restart.", settings.Name);
            _events.Saved(settings);
        }
        void IDistributedShellRestartTriggerer.TriggerRestart(ShellSettings settings)
        {
            var context = string.Empty;

            if (settings != null)
            {
                context = ShellSettingsSerializer.ComposeSettings(settings);
            }
            _eventService.Trigger(TenantRestartEventName, context);
        }
        void IDistributedEventHandler.Raised(IDistributedEvent distributedEvent)
        {
            if (distributedEvent.Name != TenantRestartEventName)
            {
                return;
            }

            var shellSettings = !string.IsNullOrEmpty(distributedEvent.Context) ? ShellSettingsSerializer.ParseSettings(distributedEvent.Context) : _shellSettings;

            shellSettings["IsShellRestart"] = "True";
            _shellSettingsEvents.Saved(shellSettings);
        }
 private IEnumerable <ShellSettings> LoadSettingsInternal()
 {
     foreach (var folder in _fileSystem.ListFolders(null))
     {
         foreach (var file in _fileSystem.ListFiles(folder.GetPath()))
         {
             if (!String.Equals(file.GetName(), Constants.ShellSettingsFileName))
             {
                 continue;
             }
             using (var stream = file.OpenRead()) {
                 using (var reader = new StreamReader(stream))
                     yield return(ShellSettingsSerializer.ParseSettings(reader.ReadToEnd()));
             }
         }
     }
 }
Ejemplo n.º 5
0
        void IShellSettingsManager.SaveSettings(ShellSettings settings)
        {
            var content  = ShellSettingsSerializer.ComposeSettings(settings);
            var filePath = _fileSystem.Combine(settings.Name, SettingsFilename);

            var file = _fileSystem.FileExists(filePath)
                ? _fileSystem.GetFile(filePath)
                : _fileSystem.CreateFile(filePath);

            using (var stream = file.OpenWrite()) {
                using (var writer = new StreamWriter(stream)) {
                    writer.Write(content);
                }
            }

            _events.Saved(settings);
        }