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; } }
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(); } }
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; }