GetFilesByAlbum performs a join on the album releases under the hood,
which won't be populated once the album is deleted. Fix by providing
a special delete method which omits the join and just looks at albumId.
* Add: option to skip automatic redownload when removing from queue
* Add tests for RedownloadFailedDownloadService
* Fix formatting
* Make re-download dialog conditional
* New: Only scan files that are new or updated
Pass through filter correctly
Add more tests
Add tests for migration 30
* Fix windows disk provider
* Don't publish deleted event for unmapped file
* Fix test on windows
* Retrieve all albums from metadata and filter client-side
Should significantly increase the proportion of artist requests hitting
cloudflare cache
* Add tests for album filtering
* Fixed: Artist only marked as refreshed if Albums/Tracks refreshed also
* Fixed: Skip album releases with no valid tracks
* Fixed: Don't add albums with no valid releases
* Fixed: Remove Albums with no valid releases
* Fixed: RemotePathMappingCheck deals with case where path invalid
The `Ensure` built into `FileExists` and `FolderExists` was throwing
an exception previously.
* Fixed: RemotePathMappingCheck doesn't fail if client unavailable
* New: Manual import improvements
- Detect and merge import with files already in library.
- Allow selection of album release from Manual Import modal.
- Loading indicator while fetching updated decisions
* Disable release switching if user manually overrode release
* Fixed: Cutoff Specification not Repsecting Profile Order
* Fixed: Incorrect wording in UpgradeAllowed logging
* Fixed: Change Logic to update if upgrade for any, downgrade for none.
* Fixed: Removed Double Preferred Word Logic
* New: Add Test Cases to Disk Upgrade Spec
* Fixed: Cleanup UpgradableSpecification
* Add ConcatToString extension and fix logging
* Fixed: Enum Naming, Commas
* Fixed: Don't fail reading m4a files when no 'day' tag set
* Fixed: Make sure Quality and MediaInfo are set if tag reading failed
* Add more tests for AudioTagService