diff --git a/SabreTools.Serialization/Internal.ArchiveDotOrg.cs b/SabreTools.Serialization/Internal.ArchiveDotOrg.cs index 0d50cb6e..9760a1ec 100644 --- a/SabreTools.Serialization/Internal.ArchiveDotOrg.cs +++ b/SabreTools.Serialization/Internal.ArchiveDotOrg.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; + namespace SabreTools.Serialization { /// @@ -7,6 +9,18 @@ namespace SabreTools.Serialization { #region Serialize + /// + /// Convert from to + /// + public static Models.Internal.Machine ConvertMachineFromArchiveDotOrg(Models.ArchiveDotOrg.File item) + { + var machine = new Models.Internal.Machine + { + [Models.Internal.Machine.RomKey] = ConvertFromArchiveDotOrg(item), + }; + return machine; + } + /// /// Convert from to /// @@ -85,6 +99,22 @@ namespace SabreTools.Serialization #region Deserialize + /// + /// Convert from to an array of + /// + public static Models.ArchiveDotOrg.File[]? ConvertMachineToArchiveDotOrg(Models.Internal.Machine item) + { + if (!item.ContainsKey(Models.Internal.Machine.RomKey) || item[Models.Internal.Machine.RomKey] is not Models.Internal.Rom[] roms) + return null; + + var fileItems = new List(); + foreach (var rom in roms) + { + fileItems.Add(ConvertToArchiveDotOrg(rom)); + } + return fileItems.ToArray(); + } + /// /// Convert from to ///