Commit Graph

90 Commits

Author SHA1 Message Date
Dean Herbert 56427becbb Move logging and early return into `UndeleteForReuse` method itself 2022-04-13 14:33:28 +09:00
Dean Herbert 6dbfc26158 Add log output when a model is undeleted 2022-04-12 18:23:38 +09:00
Dean Herbert 0fcb3bdba9 Fix beatmap date added not being updated on reimporting a soft deleted beatmap
Addresses concerns raised in https://github.com/ppy/osu/discussions/17399.
2022-03-22 14:10:36 +09:00
Dean Herbert 79d1d54e33 Rename parameter to match other usages 2022-02-08 20:35:38 +09:00
Dan Balasescu b1a73996ba Fix incorrect check for beatmap availability 2022-02-08 19:36:42 +09:00
Dean Herbert 5288eedd31 Update all usages of `RulesetID` and `Ruleset.ID` to use `Ruleset.OnlineID` 2022-01-27 15:38:03 +09:00
Dean Herbert cd71ec0edd Remove `ILive<>` interface (and use `abstract Live<>` instead) 2022-01-26 13:38:56 +09:00
Dean Herbert 778d2a71b4 Remove `Task` from the inner-most `Import` method in `RealmArchiveModelImporter`
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dan Balasescu bfa521bdd2
Merge pull request #16593 from peppy/realm-clean-up
Clean up realm naming
2022-01-25 14:33:53 +09:00
Dean Herbert bbcc149e2e During import if files are found to be missing, ensure they are restored
This is one step closer to sanity in terms of physical files. As per the
comment I have left in place, we really should be checking file sizes or
hashes, but to keep things simple and fast I've opted to just cover the
"missing file" scenario for now.

Ran into this when testing against a foreign `client.realm` by:
- Noticing a beatmap doesn't load
- Deleting said beatmap
- Downloading via beatmap overlay
- Beatmap is restored but still doesn't work

Note that I've kept the logic where this will undelete an existing
import rather than create one from fresh, as I think that is beneficial
to the user (ie. it will still keep any linked scores on restore).
2022-01-25 13:44:54 +09:00
Dean Herbert d7342880f5 Update remaining cases of clashes with `realm.Write` and `realm.RegisterForNotifications` 2022-01-25 13:09:48 +09:00
Dean Herbert 3e5c9e8436 Fix cases of `Access` instead of `Realm` 2022-01-25 12:58:15 +09:00
Dean Herbert f30894840c Update terminology to realm "instance" rather than "context"
This matches the terminology used by realm themselves, which feels
better.
2022-01-24 20:38:38 +09:00
Dean Herbert 6eb2c28e41 Rename `RealmContextFactory` to `RealmAccess` 2022-01-24 20:38:07 +09:00
Dean Herbert 114c9e8c1f Update all usages of `CreateContext` to use either `Run` or `Write` 2022-01-21 17:27:08 +09:00
Dean Herbert a5d2047f05 Fix various cases of creating realm contexts from update thread when not necessary 2022-01-21 01:44:56 +09:00
Dean Herbert 7f65f3a47f Remove all usage of `BaseDifficulty` (and access `Difficulty` instead) 2022-01-18 22:57:39 +09:00
Dean Herbert a0e2106468 Guard against null values getting inserted into database during score/beatmap imports 2022-01-17 14:05:08 +09:00
Dean Herbert 8424d86e9a Remove unused `cancellationToken` parameter in synchronous `BeatmapOnlineLookupQueue` flow 2022-01-14 13:19:00 +09:00
Dean Herbert c61419dfe5 Fix scores not using correct filename/display strings
I've updated all cases where we should have been using
`GetDisplayString()` anyway, but left the `ToString()` implementations
in place for safety. They should probably be removed in the future.
2022-01-13 16:56:11 +09:00
Dean Herbert 93c78253d6 Add synchronous fetch flow to `BeatmapOnlineLookupQueue`
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.

After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
Dean Herbert bdb2979b2e Remove `async` from `Populate` method 2022-01-13 16:36:54 +09:00
Dean Herbert 70c107b434 Remove pointless override method in `RealmArchiveModelManager` 2022-01-13 16:27:12 +09:00
Dean Herbert 88145dedf1 Remove oudated comments 2022-01-13 15:27:43 +09:00
Dean Herbert a4de0f93fa Move manager `Update` methods to be explicit to where they are still used by legacy code
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert 7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
Dean Herbert 80eee6d7b0 Make `RealmArchiveModelManager.Update` work using automapper 2022-01-12 17:49:11 +09:00
Dean Herbert 64a47ff850 Allow `RealmArchiveModelManager` file operations to be performed on detached instances 2022-01-12 17:49:11 +09:00
Dean Herbert d8e75a9de4 Reimplmeent `IsAvailableLocally` as an `abstract` method 2022-01-12 17:49:10 +09:00
Dean Herbert b619ff1264 Reattach detached items on delete/undelete 2022-01-12 17:00:17 +09:00
Dean Herbert e74a5022c9 Fix multiple tests via null checks and changing `ToLive` to `Detach`
flow
2022-01-12 17:00:17 +09:00
Dean Herbert fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
Dean Herbert 00e9f0d41e Replace `BeatmapDownloadTracker` event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert 00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert d70e292828 Remove old EF classes 2022-01-12 16:57:27 +09:00
Dean Herbert e711a6d355 Remove unused `ScoreImporter` class 2022-01-12 16:57:27 +09:00
Dean Herbert 2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
Dean Herbert 3da762e145 Replace EF `ScoreInfo` with realm version
May contain errors.
2022-01-12 16:57:27 +09:00
Dean Herbert a5df01ff47 Add score importer 2022-01-12 16:57:27 +09:00
Dean Herbert 3ecd889fef Replace EF `RulesetStore` with realm version
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert 213d89b479 Update null fallback cases involving `OnlineID` 2022-01-12 16:39:36 +09:00
Dean Herbert 618903c217 Rename realm to become imposter classes 2022-01-12 16:39:36 +09:00
Dean Herbert 441b7baa93 Provide a realm factory to usages of `ToLive`/`RealmLive` 2021-12-14 14:26:34 +09:00
Dean Herbert 68b482fc48
Merge branch 'master' into skin-export-instntiation-info 2021-12-06 17:12:42 +09:00
Dean Herbert 452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
Dean Herbert 675ecb603f Add `IRulesetStore` to allow for transitional usage in upcoming manager classes 2021-12-03 17:57:40 +09:00
Dean Herbert fe99d4e984 Standardise parameter naming across all file IO methods 2021-12-02 17:19:53 +09:00
Dean Herbert ae3038ead4 Overwrite existing files if `AddFile` is called with an existing filename 2021-12-02 17:18:06 +09:00
Dean Herbert ea66cd6c5e Add xmldoc and make realm ongoing transaction file op methods `protected` instead of `public` 2021-12-01 12:55:21 +09:00
Dean Herbert c629a7a36f Fix random selection and avoid using legacy events for handling skin import/deletion 2021-11-29 18:28:25 +09:00