コード例 #1
0
        private static void MigrateUserSettings(EsentPersistentDictionary cacheStore, string key, UserSettings userSettings)
        {
            switch (key)
            {
                case "DisableCustomChrome":
                    userSettings.DisableCustomChrome = cacheStore.Get<bool>(key);
                    break;
                case "UseVersionChecker":
                    userSettings.UseVersionChecker = cacheStore.Get<bool>(key);
                    break;
                case "UseRemoteCopy":
                    userSettings.UseRemoteCopy = cacheStore.Get<bool>(key);
                    break;
                case "UseJqe360":
                    userSettings.UseUnity = cacheStore.Get<bool>(key);
                    break;
                case "ProfileInvalidation":
                    userSettings.ProfileInvalidation = cacheStore.Get<bool>(key);
                    break;
                case "ProfileExpiration":
                    userSettings.ProfileExpiration = cacheStore.Get<int>(key);
                    break;
                case "RecognizedGameExpiration":
                    userSettings.RecognizedGameExpiration = cacheStore.Get<int>(key);
                    break;
                case "PartiallyRecognizedGameExpiration":
                    userSettings.PartiallyRecognizedGameExpiration = cacheStore.Get<int>(key);
                    break;
                case "UnrecognizedGameExpiration":
                    userSettings.UnrecognizedGameExpiration = cacheStore.Get<int>(key);
                    break;
                case "XboxLiveContentExpiration":
                    userSettings.XboxLiveContentExpiration = cacheStore.Get<int>(key);
                    break;
                case "XboxLiveContentInvalidation":
                    userSettings.XboxLiveContentInvalidation = cacheStore.Get<bool>(key);
                    break;
                case "UnknownContentExpiration":
                    userSettings.UnknownContentExpiration = cacheStore.Get<int>(key);
                    break;
                case "LeftPaneType":
                    userSettings.LeftPaneType = cacheStore.Get<string>(key);
                    break;
                case "RightPaneType":
                    userSettings.RightPaneType = cacheStore.Get<string>(key);
                    break;
                case "LeftPaneFileListPaneSettings":
                    var l = cacheStore.Get<FileListPaneSettings>(key);
                    userSettings.LeftPaneDirectory = l.Directory;
                    userSettings.LeftPaneSortByField = l.SortByField;
                    userSettings.LeftPaneSortDirection = (int)l.SortDirection;
                    break;
                case "RightPaneFileListPaneSettings":
                    var r = cacheStore.Get<FileListPaneSettings>(key);
                    userSettings.RightPaneDirectory = r.Directory;
                    userSettings.RightPaneSortByField = r.SortByField;
                    userSettings.RightPaneSortDirection = (int)r.SortDirection;
                    break;
                case "DisableUserStatisticsParticipation":
                    userSettings.DisableUserStatisticsParticipation = cacheStore.Get<bool?>(key);
                    break;
            }

        }
コード例 #2
0
 public UserSettingsProvider(IDbContext dbContext)
 {
     _dbContext = dbContext;
     using(var db = _dbContext.Open())
     {
         _userSettings = db.Get<UserSettings>().First();
         _ignoredMessages = db.Select<IgnoredMessage>().Select(m => m.MessageHash).ToList();
     }
 }
コード例 #3
0
        private EsentPersistentDictionary MigrateEsentToDatabase()
        {
            EsentPersistentDictionary cacheStore = null;
            var statistics = new Statistics();
            var userSettings = new UserSettings();
            var sw = new Stopwatch();
            sw.Start();
            using (var db = _dbContext.Open(true))
            {
                if (EsentExists())
                {
                    this.NotifyProgressStarted();
                    cacheStore = new EsentPersistentDictionary(_esentDir);
                    UpgradeEsentToLatestVersion(cacheStore);
                    var keys = cacheStore.Keys;
                    SetItemsCount(keys.Length);
                    foreach (var key in keys)
                    {
                        var prefix = key.SubstringBefore("_");
                        switch (prefix)
                        {
                            case "CacheEntry":
                                MigrateCacheItem(cacheStore, db, key);
                                break;
                            case "FtpConnection":
                                MigrateFtpConnection(cacheStore, db, key);
                                break;
                            case "Stat":
                                MigrateStatistics(cacheStore, key, statistics);
                                break;
                            case "WarningMessage":
                                MigrateIgnoredMessages(db, key);
                                break;
                            default:
                                MigrateUserSettings(cacheStore, key, userSettings);
                                break;
                        }
                        IncrementItemsMigrated();
                    }
                }
                db.Insert(statistics);
                db.Insert(userSettings);
            }
            sw.Stop();
            Debug.WriteLine("[MIGRATION] Database created in {0}", sw.Elapsed);

            if (Directory.Exists(_esentDir))
            {
                foreach (var postData in Directory.GetFiles(Path.Combine(_esentDir, "post")))
                {
                    File.Move(postData, Path.Combine(App.PostDirectory, Path.GetFileName(postData)));
                }
            }
            if (cacheStore != null) this.NotifyProgressFinished();
            return cacheStore;
        }