using AutoMapper; using LANCommander.SDK.Enums; using LANCommander.SDK.Models.Manifest; using LANCommander.Server.ImportExport.Exceptions; using LANCommander.Server.ImportExport.Models; using LANCommander.Server.Services; namespace LANCommander.Server.ImportExport.Importers; public class ScriptImporter( IMapper mapper, ScriptService scriptService) : BaseImporter { public override async Task GetImportInfoAsync(Script record) { return new ImportItemInfo { Type = ImportExportRecordType.Script, Name = record.Name, Size = ImportContext.Archive.Entries.FirstOrDefault(e => e.Key == $"Scripts/{record.Id}")?.Size ?? 0, }; } public override bool CanImport(Script record) => ImportContext.DataRecord is Data.Models.Game || ImportContext.DataRecord is Data.Models.Redistributable || ImportContext.DataRecord is Data.Models.Server; public override async Task AddAsync(Script record) { var archiveEntry = ImportContext.Archive.Entries.FirstOrDefault(e => e.Key == $"Scripts/{record.Id}"); if (archiveEntry == null) throw new ImportSkippedException