LuxImport is a modular system designed for importing, indexing, and managing digital collections efficiently. It integrates with the Luxoria ecosystem and provides functionalities for handling structured asset collections.
Event-driven architecture with IEventBus integration
Asynchronous operations for improved performance
Modular and scalable design
Progress tracking through event notifications
Parallel processing for asset loading
LuxImport ModuleImplements IModule
Handles initialization, execution, and shutdown
Listens to OpenCollectionEvent and triggers import process
ImportServiceManages the actual import process
Tracks progress and sends updates via event notifications
Loads assets into memory
ManifestRepositoryHandles metadata storage and retrieval
Ensures collection initialization and integrity
LuxConfigRepositoryStores per-asset configuration
Manages LuxCfg models in .lux/assets
ImageDataHelperLoads image assets efficiently
Uses SkiaSharp for image decoding
Ensure that the Luxoria ecosystem is installed and configured properly.
Your project should reference the necessary LuxImport libraries.
Implement and register IEventBus for event-driven interactions.
Clone or download the LuxImport module.
Add the project reference in your Luxoria-based application.
Implement IModule interface in your module system.
Initialize the module using Initialize().
Subscribe to the OpenCollectionEvent.
When an import request is triggered, LuxImport processes the collection.
Once completed, CollectionUpdatedEvent
Subscribes to OpenCollectionEvent
Initializes logger and context
Checks if the collection path is valid and initialized
Reads metadata from manifest.json
Hashes and stores asset references
Uses parallel processing for efficiency
Loads assets into memory
Uses ImageDataHelper for efficient decoding
Publishes CollectionUpdatedEvent upon successful import
OpenCollectionEvent ListenerTriggers collection import
Sends progress updates
CollectionUpdatedEvent PublisherNotifies the system of import completion
Uses ILoggerService for structured logs
Exception handling ensures robust error reporting
Uses parallel processing in LoadAssets
Minimizes blocking I/O operations
Implements batch logging to prevent log spam
Cache system for faster re-imports
Support for more file formats
UI integration for progress monitoring
LuxImport is designed for efficient, modular asset importation and indexing within the Luxoria ecosystem. Its event-driven design and asynchronous processing make it highly scalable and reliable.
var luxImport = new LuxImport();
luxImport.Initialize(eventBus, context, logger);
luxImport.Execute();public void Initialize(IEventBus eventBus, IModuleContext context, ILoggerService logger)_eventBus.Subscribe<OpenCollectionEvent>(HandleOnOpenCollectionAsync);_eventBus?.Publish(new CollectionUpdatedEvent(collectionName, collectionPath, assets));