コード例 #1
0
        private void Pre_2_6_3_1()
        {
            DataTable dt = DataAccess.ExecuteSelect("pragma table_info(GameFiles);").Tables[0];

            if (!dt.Select("name = 'SettingsFilesSourcePort'").Any())
            {
                DataAccess.ExecuteNonQuery("alter table GameFiles add column 'SettingsFilesSourcePort' TEXT;");
            }
            if (!dt.Select("name = 'SettingsFilesIWAD'").Any())
            {
                DataAccess.ExecuteNonQuery("alter table GameFiles add column 'SettingsFilesIWAD' TEXT;");
            }

            var adapter       = DbDataSourceAdapter.CreateAdapter();
            var gameFiles     = adapter.GetGameFiles();
            var ports         = adapter.GetSourcePorts().ToDictionary(x => x.SourcePortID, x => x);
            var iwads         = adapter.GetIWads();
            var gameFileIwads = adapter.GetGameFileIWads().ToDictionary(x => iwads.First(y => y.GameFileID == x.GameFileID.Value).IWadID, x => x);

            foreach (var gameFile in gameFiles)
            {
                if (!string.IsNullOrEmpty(gameFile.SettingsFiles))
                {
                    var files = Util.GetAdditionalFiles(adapter, gameFile).Select(x => x.FileName);
                    FileLoadHandlerLegacy filehandler = new FileLoadHandlerLegacy(adapter, gameFile);
                    filehandler.CalculateAdditionalFiles(GetDictionaryData <IGameFile>(gameFile.IWadID, gameFileIwads),
                                                         GetDictionaryData <ISourcePort>(gameFile.SourcePortID, ports));

                    var sourcePortFiles = filehandler.GetSourcePortFiles().Select(x => x.FileName).Where(x => files.Contains(x));
                    var iwadFiles       = filehandler.GetIWadFiles().Select(x => x.FileName).Where(x => files.Contains(x)).Except(sourcePortFiles);

                    gameFile.SettingsFilesSourcePort = string.Join(";", sourcePortFiles.ToArray());
                    gameFile.SettingsFilesIWAD       = string.Join(";", iwadFiles.ToArray());

                    adapter.UpdateGameFile(gameFile);
                }
            }
        }
コード例 #2
0
 public void SetDataSource(ISourcePortData sourcePort)
 {
     m_sourcePort = sourcePort;
     sourcePortEdit1.SetDataSource(sourcePort);
     ctrlFiles.SetDataSource(Util.GetAdditionalFiles(m_adapter, sourcePort));
 }