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");

        }