diff --git a/SabreTools.DatFiles/DatFile.MetadataConverter.cs b/SabreTools.DatFiles/DatFile.FromMetadata.cs similarity index 82% rename from SabreTools.DatFiles/DatFile.MetadataConverter.cs rename to SabreTools.DatFiles/DatFile.FromMetadata.cs index dd71361d..b20edbb0 100644 --- a/SabreTools.DatFiles/DatFile.MetadataConverter.cs +++ b/SabreTools.DatFiles/DatFile.FromMetadata.cs @@ -1411,252 +1411,5 @@ namespace SabreTools.DatFiles } #endregion - - #region To Metadata - - /// - /// Convert metadata information - /// - public Models.Metadata.MetadataFile? ConvertMetadata() - { - // If we don't have items, we can't do anything - if (this.Items == null || !this.Items.Any()) - return null; - - // Create an object to hold the data - var metadataFile = new Models.Metadata.MetadataFile(); - - // Convert and assign the header - var header = ConvertHeader(); - if (header != null) - metadataFile[Models.Metadata.MetadataFile.HeaderKey] = header; - - // TODO: Implement machine creation - - return metadataFile; - } - - /// - /// Convert header information - /// - private Models.Metadata.Header? ConvertHeader() - { - // If the header is invalid, we can't do anything - if (Header == null) - return null; - - // Create an internal header - var header = new Models.Metadata.Header(); - - if (Header.GetFieldValue(Models.Metadata.Header.AuthorKey) == null) - header[Models.Metadata.Header.AuthorKey] = Header.GetFieldValue(Models.Metadata.Header.AuthorKey); - if (Header.GetFieldValue(Models.Metadata.Header.BiosModeKey) == MergingFlag.None) - header[Models.Metadata.Header.BiosModeKey] = Header.GetFieldValue(Models.Metadata.Header.BiosModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.BuildKey) == null) - header[Models.Metadata.Header.BuildKey] = Header.GetFieldValue(Models.Metadata.Header.BuildKey); - if (Header.GetFieldValue(Models.Metadata.Header.CategoryKey) == null) - header[Models.Metadata.Header.CategoryKey] = Header.GetFieldValue(Models.Metadata.Header.CategoryKey); - if (Header.GetFieldValue(Models.Metadata.Header.CommentKey) == null) - header[Models.Metadata.Header.CommentKey] = Header.GetFieldValue(Models.Metadata.Header.CommentKey); - if (Header.GetFieldValue(Models.Metadata.Header.DateKey) == null) - header[Models.Metadata.Header.DateKey] = Header.GetFieldValue(Models.Metadata.Header.DateKey); - if (Header.GetFieldValue(Models.Metadata.Header.DatVersionKey) == null) - header[Models.Metadata.Header.DatVersionKey] = Header.GetFieldValue(Models.Metadata.Header.DatVersionKey); - if (Header.GetFieldValue(Models.Metadata.Header.DebugKey) == null) - header[Models.Metadata.Header.DebugKey] = Header.GetFieldValue(Models.Metadata.Header.DebugKey); - if (Header.GetFieldValue(Models.Metadata.Header.DescriptionKey) == null) - header[Models.Metadata.Header.DescriptionKey] = Header.GetFieldValue(Models.Metadata.Header.DescriptionKey); - if (Header.GetFieldValue(Models.Metadata.Header.EmailKey) == null) - header[Models.Metadata.Header.EmailKey] = Header.GetFieldValue(Models.Metadata.Header.EmailKey); - if (Header.GetFieldValue(Models.Metadata.Header.EmulatorVersionKey) == null) - header[Models.Metadata.Header.EmulatorVersionKey] = Header.GetFieldValue(Models.Metadata.Header.EmulatorVersionKey); - if (Header.GetFieldValue(Models.Metadata.Header.ForceMergingKey) == MergingFlag.None) - header[Models.Metadata.Header.ForceMergingKey] = Header.GetFieldValue(Models.Metadata.Header.ForceMergingKey); - if (Header.GetFieldValue(Models.Metadata.Header.ForceNodumpKey) == NodumpFlag.None) - header[Models.Metadata.Header.ForceNodumpKey] = Header.GetFieldValue(Models.Metadata.Header.ForceNodumpKey); - if (Header.GetFieldValue(Models.Metadata.Header.ForcePackingKey) == PackingFlag.None) - header[Models.Metadata.Header.ForcePackingKey] = Header.GetFieldValue(Models.Metadata.Header.ForcePackingKey); - if (Header.GetFieldValue(Models.Metadata.Header.HeaderKey) == null) - header[Models.Metadata.Header.HeaderKey] = Header.GetFieldValue(Models.Metadata.Header.HeaderKey); - if (Header.GetFieldValue(Models.Metadata.Header.HomepageKey) == null) - header[Models.Metadata.Header.HomepageKey] = Header.GetFieldValue(Models.Metadata.Header.HomepageKey); - if (Header.GetFieldValue(Models.Metadata.Header.IdKey) == null) - header[Models.Metadata.Header.IdKey] = Header.GetFieldValue(Models.Metadata.Header.IdKey); - if (Header.GetFieldValue(Models.Metadata.Header.ImFolderKey) == null) - header[Models.Metadata.Header.ImFolderKey] = Header.GetFieldValue(Models.Metadata.Header.ImFolderKey); - if (Header.GetFieldValue(Models.Metadata.Header.LockBiosModeKey) == null) - header[Models.Metadata.Header.LockBiosModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockBiosModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.LockRomModeKey) == null) - header[Models.Metadata.Header.LockRomModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockRomModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.LockSampleModeKey) == null) - header[Models.Metadata.Header.LockSampleModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockSampleModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.MameConfigKey) == null) - header[Models.Metadata.Header.MameConfigKey] = Header.GetFieldValue(Models.Metadata.Header.NameKey); - if (Header.GetFieldValue(Models.Metadata.Header.NameKey) == null) - header[Models.Metadata.Header.NameKey] = Header.GetFieldValue(Models.Metadata.Header.MameConfigKey); - if (Header.GetFieldValue(Models.Metadata.Header.PluginKey) == null) - header[Models.Metadata.Header.PluginKey] = Header.GetFieldValue(Models.Metadata.Header.PluginKey); - if (Header.GetFieldValue(Models.Metadata.Header.RefNameKey) == null) - header[Models.Metadata.Header.RefNameKey] = Header.GetFieldValue(Models.Metadata.Header.RefNameKey); - if (Header.GetFieldValue(Models.Metadata.Header.RomModeKey) == MergingFlag.None) - header[Models.Metadata.Header.RomModeKey] = Header.GetFieldValue(Models.Metadata.Header.RomModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.RomTitleKey) == null) - header[Models.Metadata.Header.RomTitleKey] = Header.GetFieldValue(Models.Metadata.Header.RomTitleKey); - if (Header.GetFieldValue(Models.Metadata.Header.RootDirKey) == null) - header[Models.Metadata.Header.RootDirKey] = Header.GetFieldValue(Models.Metadata.Header.RootDirKey); - if (Header.GetFieldValue(Models.Metadata.Header.SampleModeKey) == MergingFlag.None) - header[Models.Metadata.Header.SampleModeKey] = Header.GetFieldValue(Models.Metadata.Header.SampleModeKey); - if (Header.GetFieldValue(Models.Metadata.Header.ScreenshotsHeightKey) == null) - header[Models.Metadata.Header.ScreenshotsHeightKey] = Header.GetFieldValue(Models.Metadata.Header.ScreenshotsHeightKey); - if (Header.GetFieldValue(Models.Metadata.Header.ScreenshotsWidthKey) == null) - header[Models.Metadata.Header.ScreenshotsWidthKey] = Header.GetFieldValue(Models.Metadata.Header.ScreenshotsWidthKey); - if (Header.GetFieldValue(Models.Metadata.Header.SystemKey) == null) - header[Models.Metadata.Header.SystemKey] = Header.GetFieldValue(Models.Metadata.Header.SystemKey); - if (Header.GetFieldValue(Models.Metadata.Header.TypeKey) == null) - header[Models.Metadata.Header.TypeKey] = Header.GetFieldValue(Models.Metadata.Header.TypeKey); - if (Header.GetFieldValue(Models.Metadata.Header.UrlKey) == null) - header[Models.Metadata.Header.UrlKey] = Header.GetFieldValue(Models.Metadata.Header.UrlKey); - if (Header.GetFieldValue(Models.Metadata.Header.VersionKey) == null) - header[Models.Metadata.Header.VersionKey] = Header.GetFieldValue(Models.Metadata.Header.VersionKey); - - // Convert subheader values - if (Header.CanOpenSpecified) - header[Models.Metadata.Header.CanOpenKey] = Header.GetFieldValue(Models.Metadata.Header.CanOpenKey); - // if (Header.ImagesSpecified) - // // TODO: Add to internal model - if (Header.InfosSpecified) - { - var infoItem = new Models.OfflineList.Infos(); - var infos = Header.GetFieldValue(Models.Metadata.Header.InfosKey)!; - foreach (var info in infos) - { - switch (info.Name) - { - case "title": - infoItem.Title = new Models.OfflineList.Title - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "location": - infoItem.Location = new Models.OfflineList.Location - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "publisher": - infoItem.Publisher = new Models.OfflineList.Publisher - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "sourceRom": - infoItem.SourceRom = new Models.OfflineList.SourceRom - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "saveType": - infoItem.SaveType = new Models.OfflineList.SaveType - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "romSize": - infoItem.RomSize = new Models.OfflineList.RomSize - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "releaseNumber": - infoItem.ReleaseNumber = new Models.OfflineList.ReleaseNumber - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "languageNumber": - infoItem.LanguageNumber = new Models.OfflineList.LanguageNumber - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "comment": - infoItem.Comment = new Models.OfflineList.Comment - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "romCRC": - infoItem.RomCRC = new Models.OfflineList.RomCRC - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "im1CRC": - infoItem.Im1CRC = new Models.OfflineList.Im1CRC - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "im2CRC": - infoItem.Im2CRC = new Models.OfflineList.Im2CRC - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - case "languages": - infoItem.Languages = new Models.OfflineList.Languages - { - Visible = info.Visible.FromYesNo(), - InNamingOption = info.InNamingOption.FromYesNo(), - Default = info.Default.FromYesNo(), - }; - break; - } - } - - header[Models.Metadata.Header.InfosKey] = infoItem; - } - if (Header.NewDatSpecified) - { - var newDat = new Models.OfflineList.NewDat - { - DatVersionUrl = Header.GetFieldValue("DATVERSIONURL"), - //DatUrl = Header.GetFieldValue("DATURL"), // TODO: Add to internal model - ImUrl = Header.GetFieldValue("IMURL"), - }; - header[Models.Metadata.Header.NewDatKey] = newDat; - } - // if (Header.SearchSpecified) - // // TODO: Add to internal model - - return header; - } - - #endregion } } \ No newline at end of file diff --git a/SabreTools.DatFiles/DatFile.ToMetadata.cs b/SabreTools.DatFiles/DatFile.ToMetadata.cs new file mode 100644 index 00000000..4f041f68 --- /dev/null +++ b/SabreTools.DatFiles/DatFile.ToMetadata.cs @@ -0,0 +1,257 @@ +using System.Collections.Generic; +using System.Linq; +using SabreTools.Core; +using SabreTools.Core.Tools; + +namespace SabreTools.DatFiles +{ + public partial class DatFile + { + #region To Metadata + + /// + /// Convert metadata information + /// + public Models.Metadata.MetadataFile? ConvertMetadata() + { + // If we don't have items, we can't do anything + if (this.Items == null || !this.Items.Any()) + return null; + + // Create an object to hold the data + var metadataFile = new Models.Metadata.MetadataFile(); + + // Convert and assign the header + var header = ConvertHeader(); + if (header != null) + metadataFile[Models.Metadata.MetadataFile.HeaderKey] = header; + + // TODO: Implement machine creation + + return metadataFile; + } + + /// + /// Convert header information + /// + private Models.Metadata.Header? ConvertHeader() + { + // If the header is invalid, we can't do anything + if (Header == null) + return null; + + // Create an internal header + var header = new Models.Metadata.Header(); + + if (Header.GetFieldValue(Models.Metadata.Header.AuthorKey) == null) + header[Models.Metadata.Header.AuthorKey] = Header.GetFieldValue(Models.Metadata.Header.AuthorKey); + if (Header.GetFieldValue(Models.Metadata.Header.BiosModeKey) == MergingFlag.None) + header[Models.Metadata.Header.BiosModeKey] = Header.GetFieldValue(Models.Metadata.Header.BiosModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.BuildKey) == null) + header[Models.Metadata.Header.BuildKey] = Header.GetFieldValue(Models.Metadata.Header.BuildKey); + if (Header.GetFieldValue(Models.Metadata.Header.CategoryKey) == null) + header[Models.Metadata.Header.CategoryKey] = Header.GetFieldValue(Models.Metadata.Header.CategoryKey); + if (Header.GetFieldValue(Models.Metadata.Header.CommentKey) == null) + header[Models.Metadata.Header.CommentKey] = Header.GetFieldValue(Models.Metadata.Header.CommentKey); + if (Header.GetFieldValue(Models.Metadata.Header.DateKey) == null) + header[Models.Metadata.Header.DateKey] = Header.GetFieldValue(Models.Metadata.Header.DateKey); + if (Header.GetFieldValue(Models.Metadata.Header.DatVersionKey) == null) + header[Models.Metadata.Header.DatVersionKey] = Header.GetFieldValue(Models.Metadata.Header.DatVersionKey); + if (Header.GetFieldValue(Models.Metadata.Header.DebugKey) == null) + header[Models.Metadata.Header.DebugKey] = Header.GetFieldValue(Models.Metadata.Header.DebugKey); + if (Header.GetFieldValue(Models.Metadata.Header.DescriptionKey) == null) + header[Models.Metadata.Header.DescriptionKey] = Header.GetFieldValue(Models.Metadata.Header.DescriptionKey); + if (Header.GetFieldValue(Models.Metadata.Header.EmailKey) == null) + header[Models.Metadata.Header.EmailKey] = Header.GetFieldValue(Models.Metadata.Header.EmailKey); + if (Header.GetFieldValue(Models.Metadata.Header.EmulatorVersionKey) == null) + header[Models.Metadata.Header.EmulatorVersionKey] = Header.GetFieldValue(Models.Metadata.Header.EmulatorVersionKey); + if (Header.GetFieldValue(Models.Metadata.Header.ForceMergingKey) == MergingFlag.None) + header[Models.Metadata.Header.ForceMergingKey] = Header.GetFieldValue(Models.Metadata.Header.ForceMergingKey); + if (Header.GetFieldValue(Models.Metadata.Header.ForceNodumpKey) == NodumpFlag.None) + header[Models.Metadata.Header.ForceNodumpKey] = Header.GetFieldValue(Models.Metadata.Header.ForceNodumpKey); + if (Header.GetFieldValue(Models.Metadata.Header.ForcePackingKey) == PackingFlag.None) + header[Models.Metadata.Header.ForcePackingKey] = Header.GetFieldValue(Models.Metadata.Header.ForcePackingKey); + if (Header.GetFieldValue(Models.Metadata.Header.HeaderKey) == null) + header[Models.Metadata.Header.HeaderKey] = Header.GetFieldValue(Models.Metadata.Header.HeaderKey); + if (Header.GetFieldValue(Models.Metadata.Header.HomepageKey) == null) + header[Models.Metadata.Header.HomepageKey] = Header.GetFieldValue(Models.Metadata.Header.HomepageKey); + if (Header.GetFieldValue(Models.Metadata.Header.IdKey) == null) + header[Models.Metadata.Header.IdKey] = Header.GetFieldValue(Models.Metadata.Header.IdKey); + if (Header.GetFieldValue(Models.Metadata.Header.ImFolderKey) == null) + header[Models.Metadata.Header.ImFolderKey] = Header.GetFieldValue(Models.Metadata.Header.ImFolderKey); + if (Header.GetFieldValue(Models.Metadata.Header.LockBiosModeKey) == null) + header[Models.Metadata.Header.LockBiosModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockBiosModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.LockRomModeKey) == null) + header[Models.Metadata.Header.LockRomModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockRomModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.LockSampleModeKey) == null) + header[Models.Metadata.Header.LockSampleModeKey] = Header.GetFieldValue(Models.Metadata.Header.LockSampleModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.MameConfigKey) == null) + header[Models.Metadata.Header.MameConfigKey] = Header.GetFieldValue(Models.Metadata.Header.NameKey); + if (Header.GetFieldValue(Models.Metadata.Header.NameKey) == null) + header[Models.Metadata.Header.NameKey] = Header.GetFieldValue(Models.Metadata.Header.MameConfigKey); + if (Header.GetFieldValue(Models.Metadata.Header.PluginKey) == null) + header[Models.Metadata.Header.PluginKey] = Header.GetFieldValue(Models.Metadata.Header.PluginKey); + if (Header.GetFieldValue(Models.Metadata.Header.RefNameKey) == null) + header[Models.Metadata.Header.RefNameKey] = Header.GetFieldValue(Models.Metadata.Header.RefNameKey); + if (Header.GetFieldValue(Models.Metadata.Header.RomModeKey) == MergingFlag.None) + header[Models.Metadata.Header.RomModeKey] = Header.GetFieldValue(Models.Metadata.Header.RomModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.RomTitleKey) == null) + header[Models.Metadata.Header.RomTitleKey] = Header.GetFieldValue(Models.Metadata.Header.RomTitleKey); + if (Header.GetFieldValue(Models.Metadata.Header.RootDirKey) == null) + header[Models.Metadata.Header.RootDirKey] = Header.GetFieldValue(Models.Metadata.Header.RootDirKey); + if (Header.GetFieldValue(Models.Metadata.Header.SampleModeKey) == MergingFlag.None) + header[Models.Metadata.Header.SampleModeKey] = Header.GetFieldValue(Models.Metadata.Header.SampleModeKey); + if (Header.GetFieldValue(Models.Metadata.Header.ScreenshotsHeightKey) == null) + header[Models.Metadata.Header.ScreenshotsHeightKey] = Header.GetFieldValue(Models.Metadata.Header.ScreenshotsHeightKey); + if (Header.GetFieldValue(Models.Metadata.Header.ScreenshotsWidthKey) == null) + header[Models.Metadata.Header.ScreenshotsWidthKey] = Header.GetFieldValue(Models.Metadata.Header.ScreenshotsWidthKey); + if (Header.GetFieldValue(Models.Metadata.Header.SystemKey) == null) + header[Models.Metadata.Header.SystemKey] = Header.GetFieldValue(Models.Metadata.Header.SystemKey); + if (Header.GetFieldValue(Models.Metadata.Header.TypeKey) == null) + header[Models.Metadata.Header.TypeKey] = Header.GetFieldValue(Models.Metadata.Header.TypeKey); + if (Header.GetFieldValue(Models.Metadata.Header.UrlKey) == null) + header[Models.Metadata.Header.UrlKey] = Header.GetFieldValue(Models.Metadata.Header.UrlKey); + if (Header.GetFieldValue(Models.Metadata.Header.VersionKey) == null) + header[Models.Metadata.Header.VersionKey] = Header.GetFieldValue(Models.Metadata.Header.VersionKey); + + // Convert subheader values + if (Header.CanOpenSpecified) + header[Models.Metadata.Header.CanOpenKey] = Header.GetFieldValue(Models.Metadata.Header.CanOpenKey); + // if (Header.ImagesSpecified) + // // TODO: Add to internal model + if (Header.InfosSpecified) + { + var infoItem = new Models.OfflineList.Infos(); + var infos = Header.GetFieldValue(Models.Metadata.Header.InfosKey)!; + foreach (var info in infos) + { + switch (info.Name) + { + case "title": + infoItem.Title = new Models.OfflineList.Title + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "location": + infoItem.Location = new Models.OfflineList.Location + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "publisher": + infoItem.Publisher = new Models.OfflineList.Publisher + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "sourceRom": + infoItem.SourceRom = new Models.OfflineList.SourceRom + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "saveType": + infoItem.SaveType = new Models.OfflineList.SaveType + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "romSize": + infoItem.RomSize = new Models.OfflineList.RomSize + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "releaseNumber": + infoItem.ReleaseNumber = new Models.OfflineList.ReleaseNumber + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "languageNumber": + infoItem.LanguageNumber = new Models.OfflineList.LanguageNumber + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "comment": + infoItem.Comment = new Models.OfflineList.Comment + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "romCRC": + infoItem.RomCRC = new Models.OfflineList.RomCRC + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "im1CRC": + infoItem.Im1CRC = new Models.OfflineList.Im1CRC + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "im2CRC": + infoItem.Im2CRC = new Models.OfflineList.Im2CRC + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + case "languages": + infoItem.Languages = new Models.OfflineList.Languages + { + Visible = info.Visible.FromYesNo(), + InNamingOption = info.InNamingOption.FromYesNo(), + Default = info.Default.FromYesNo(), + }; + break; + } + } + + header[Models.Metadata.Header.InfosKey] = infoItem; + } + if (Header.NewDatSpecified) + { + var newDat = new Models.OfflineList.NewDat + { + DatVersionUrl = Header.GetFieldValue("DATVERSIONURL"), + //DatUrl = Header.GetFieldValue("DATURL"), // TODO: Add to internal model + ImUrl = Header.GetFieldValue("IMURL"), + }; + header[Models.Metadata.Header.NewDatKey] = newDat; + } + // if (Header.SearchSpecified) + // // TODO: Add to internal model + + return header; + } + + #endregion + } +} \ No newline at end of file