public StatisticService(App app) { this.app = app; this.app.Exit += app_Exit; statisticList = new StatisticListModel(); statisticList.Data = new List <StatisticModel>(); xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir, "statistic.xml"); xml = new XmlExtensions(xmlPath); }
public StatisticService( App app, BackgroundWorkerService backgroundWorker) { this.app = app; this.backgroundWorker = backgroundWorker; this.app.Exit += app_Exit; statisticList = new StatisticListModel(); statisticList.Data = new List<StatisticModel>(); xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir, "statistic.xml"); }
/// <summary> /// 加载统计数据 /// </summary> public void LoadStatisticData() { if (File.Exists(xmlPath)) { var data = xml.ToModel(typeof(StatisticListModel)); if (data != null) { statisticList = data as StatisticListModel; } else { xml.Save(statisticList); } } else { xml.Save(statisticList); } }
//new code #region 迁移数据,从xml到sqlite。下一个版本将弃用 :) /// <summary> /// 迁移数据,从xml到sqlite。下一个版本将弃用 :) /// </summary> private void MigrateXMLDataToDb() { if (File.Exists(xmlPath)) { //需要迁移 xml = new XmlExtensions(xmlPath); var data = xml.ToModel(typeof(StatisticListModel)); if (data != null) { statisticList = data as StatisticListModel; if (statisticList != null && statisticList.Data != null && statisticList.Data.Count > 0) { using (var db = new StatisticContext()) { foreach (var item in statisticList.Data) { db.Statistics.Add(item); } db.SaveChanges(); //备份数据文件 File.Copy(xmlPath, xmlPath + ".migrate.backup"); //删除原数据文件 File.Delete(xmlPath); //迁移标记文件,在用户收到迁移提示后将删除 File.WriteAllText(xmlPath + ".migrate.mark", ""); } } } } //迁移判断 IsMigrated = File.Exists(xmlPath + ".migrate.mark"); }