コード例 #1
0
 public void Synchronize()
 {
     foreach (Type type in StorableTypes)
     {
         FileInfo[] files = YamlDataDirectory.GetYamlFiles(type);
         foreach (FileInfo file in files)
         {
             YamlData data = YamlData.Load(type, file, Logger);
             object   dao  = DaoRepository.Query("Name", data.Name).FirstOrDefault();
             if (dao == null)
             {
                 DaoRepository.Save(data.Data);
             }
             else
             {
                 data.FileWins += (o, a) =>
                 {
                     YamlData.YamlDataEventArgs d = (YamlData.YamlDataEventArgs)a;
                     DaoRepository.Save(d.Type, d.Data);
                     FireEvent(FileWins, d);
                 };
                 data.DataWins += (o, a) =>
                 {
                     YamlData.YamlDataEventArgs d = (YamlData.YamlDataEventArgs)a;
                     YamlDataDirectory.Save(file, d.Type, d.Data);
                     FireEvent(DataWins, d);
                 };
                 data.Data = dao;
                 data.Synchronize(type, file);
             }
         }
     }
 }
コード例 #2
0
 private object GetLatest(object dao)
 {
     if (dao != null)
     {
         FileInfo yamlFile = YamlDataDirectory.GetYamlFile(dao.GetType(), dao);
         if (yamlFile != null)
         {
             YamlData data = new YamlData(dao);
             return(data.Newer(yamlFile));
         }
     }
     return(dao);
 }