* Created AbstractMetaState
* Added IAbstractMetaState to NexusDownloader.State
Slideshow is fully working with this setup and nothing changed
functionally.
* Renamed IAbstractMetaState to IMetaState
* Changed modVMs in SlideShow from type NexusDownloader.State to IMetaState
* Simplified IMetaState and ModVM
* Removed Setter from IMetaState and added to LoversLabDownloader
* Throw exception when the modlist could not be loaded
* Created AbstractMetaState
AbstractMetaState implements AbstractDownloadState and indicates that a
State from a specific Download contains meta information. This is used
for the Slideshow and can also be used for the Manifest.
* Created GatherMetaData function
* Implemented new AbstractMetaState for LoversLab
* Implemented new AbstractMetaState for NexusMods
* Replaced Utils.Log with Utils.Error
* Slideshow fixes
* Replaced AbstractMetaState with IMetaState
* Updated CHANGELOG
Co-authored-by: Timothy Baldridge <tbaldridge@gmail.com>
No properties are actually making use of the ViewModel/[Reactive] concepts, where normal properties might change after the fact, and users might want to construct an Rx observable from a property and its changes, or a GUI might want to watch (via notifypropertychange) changes.
All concepts that are mutable and want to be followed are already able to do so without the ViewModel concepts, as the implement IObservable (IsLoggedIn, for ex)
ViewModel ideally should only be used in a GUI, as it's the weird marriage of Rx + real properties that XAML can bind to. The ViewModel is the hybrid glue to bring those two worlds together. In a situation with no GUI, it's unnecessary