private void MigrateStatistics(EsentPersistentDictionary cacheStore, string key, Statistics statistics) { var entryKey = key.SubstringAfter("_"); switch (entryKey) { case "TotalFilesTransferred": statistics.TotalFilesTransferred = cacheStore.Get<int>(key); break; case "TotalBytesTransferred": statistics.TotalBytesTransferred = cacheStore.Get<long>(key); break; case "TotalTimeSpentWithTransfer": statistics.TotalTimeSpentWithTransfer = cacheStore.Get<TimeSpan>(key); break; case "TotalUsageTime": statistics.TotalUsageTime = cacheStore.Get<TimeSpan>(key); break; case "ApplicationStarted": statistics.ApplicationStarted = cacheStore.Get<int>(key); break; case "ApplicationCrashed": statistics.ApplicationCrashed = cacheStore.Get<int>(key); break; } }
public StatisticsViewModel(ICacheManager cacheManager, IDbContext dbContext) { UsageStart = DateTime.Now; CommandUsage = new Dictionary<string, int>(); ServerUsage = new Dictionary<FtpServerType, int>(); _cacheManager = cacheManager; _dbContext = dbContext; using(var db = _dbContext.Open()) { _statistics = db.Get<Statistics>().First(); } DelegateCommand.BeforeAction = CountCommandUsage; EventAggregator.GetEvent<OpenNestedPaneEvent>().Subscribe(OnPaneOpen); }
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; }