using System; using SabreTools.Data.Models.EverdriveSMDB; namespace SabreTools.Serialization.CrossModel { public partial class EverdriveSMDB : BaseMetadataSerializer { /// public override Data.Models.Metadata.MetadataFile? Serialize(MetadataFile? obj) { if (obj is null) return null; var metadataFile = new Data.Models.Metadata.MetadataFile { Header = ConvertHeaderToInternalModel(), }; if (obj?.Row is not null && obj.Row.Length > 0) metadataFile.Machine = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel); return metadataFile; } /// /// Convert from to /// private static Data.Models.Metadata.Header ConvertHeaderToInternalModel() { var header = new Data.Models.Metadata.Header { Name = "Everdrive SMDB", }; return header; } /// /// Convert from to /// private static Data.Models.Metadata.Machine ConvertMachineToInternalModel(Row item) { var machine = new Data.Models.Metadata.Machine { Rom = new Data.Models.Metadata.Rom[] { ConvertToInternalModel(item) }, }; return machine; } /// /// Convert from to /// private static Data.Models.Metadata.Rom ConvertToInternalModel(Row item) { var rom = new Data.Models.Metadata.Rom { SHA256 = item.SHA256, Name = item.Name, SHA1 = item.SHA1, MD5 = item.MD5, CRC32 = item.CRC32, Size = item.Size, }; return rom; } } }