This refactor splits the import and export functionality out of the ImportContext and adds an ExportContext. This also introduced separate importer and exporter implementations.
Additionally, adding archive, save, scripts, and server files to the final export archive has been implemented at the exporter implementation for each instead of handling it in the context. This should be a good pattern if other files need to be added down the road.
- Fixed circular DI issues with importers and importer context
- Added additional mappings for data <-> manifest models
- Avoid null reference exceptions when trying to export archives/media where files don't exist
- Consolidate import dialogs
- Render selectable flags in export dialog
- Fixed various media uploaders to use new MediaService.WriteToFile
- DownloadService has been renamed to InstallService
- In the library item context menu, there is a new option "Modify". This allows the user to selsct any additional addons to install as well as move the game to a separate storage location.
- Fixed issue where transfers were being double updated for installs
- Force UI update whenever queue is updates
Games now import using the Game type instead of manifest. The manifest is fine for locally caching the game (though who knows, this could change as well), but for providing complex information like dependent games versioning it just doesn't have enough data.
Importing has been changed to provide the "Update Available" title change on games where the main game or mod/expansion has a new version available.
Notes now get populated on import, not just install.
Reworked population of game menu items to include non-primary actions from mods/expansions.
Simplified and fixed certain scripts not running for mods/expansions.