예제 #1
0
        internal void Save()
        {
            if (!DataService.Key.Equals(_DataServiceStrategy))
            {
                Bootstrapper.SetDataStrategy(DataService.Key);
                Settings.DataService    = _DataService;
                Tasks.DataService       = _DataService;
                Paths.DataService       = _DataService;
                Mimes.DataService       = _DataService;
                Content.DataService     = _DataService;
                Credentials.DataService = _DataService;
                Indexer.DataService     = _DataService;
                Chronos.DataService     = _DataService;
                Mimes.DataService       = _DataService;
                Schema.DataService      = _DataService;
                Mimes.SaveWorkspace();
            }
            if (Content.CanSaveWorkspace())
            {
                Content.SetPreferences();
                Content.SaveWorkspace();
            }

            if (Schema.CanSaveWorkspace())
            {
                Schema.SetPreferences();
                Schema.SaveWorkspace();
            }
            if (Indexer.CanSaveWorkspace())
            {
                Indexer.SaveWorkspace();
            }

            if (Tasks.CanSaveWorkspace())
            {
                Tasks.SetPreferences();
                Tasks.SaveWorkspace();
            }
            if (_Chronos != null && _Chronos.CanSaveWorkspace())
            {
                _Chronos.SaveWorkspace();
            }
            if (Styx != null && Styx.CanSaveWorkspace())
            {
                Styx.SaveWorkspace();
            }
            // must be last so that preferences are persisted
            if (Settings.CanSaveWorkspace())
            {
                Settings.SaveWorkspace();
            }
        }