Commit Graph

2486 Commits

Author SHA1 Message Date
60b80c88b6 Avoid file retrieval overhead when detaching BeatmapSetInfo
It seems that no usages of `BeatmapSetInfo` detaches require files - a
`WorkingBeatmap` is always obtained before doing further lookups.

Therefore we can omit this include unless the detaching object is a
`BeatmapInfo`. A refetch is performed when retrieving a
`WorkingBeatmap` to complete the equation.
2022-01-19 00:49:18 +09:00
9a43ed742b Update automapper spec in line with v11
See https://docs.automapper.org/en/latest/11.0-Upgrade-Guide.html for
 more details.
2022-01-18 15:23:28 +09:00
381174e482 Give the placeholder ruleset better defaults to allow tests to work again 2022-01-17 14:40:00 +09:00
744084b418 Initialise all parameters is paramaterless constructor for now for added safety 2022-01-17 13:51:30 +09:00
e75d21507c Fix GetDisplayTitleRomanisable() relying on ToString() implementation 2022-01-15 15:26:41 +01:00
dea2e1fac0 Return immediately on failed web request in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:20:51 +09:00
8424d86e9a Remove unused cancellationToken parameter in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:19:00 +09:00
9b33fbbee5 Ensure detached when performing model Clone operations on BeatmapInfo/ScoreInfo 2022-01-14 13:08:20 +09:00
b610d2db12 Add EF to realm beatmap migration 2022-01-13 18:23:18 +09:00
069d6d2954 Remove pointless compatibility parameter BeatmapSetInfoID 2022-01-13 18:02:10 +09:00
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
b77cb344d5 Use ctor rather than MemberwiseClone to guarantee a safer clone of BeatmapDifficulty 2022-01-13 13:23:41 +09:00
86b2ac3217 Remove unnecessary Ruleset null check in BeatmapDifficultyCache 2022-01-13 13:19:49 +09:00
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
5f7365e8f3 Ensure scores are cleaned up alongside beatmap so they don't have a null reference 2022-01-12 17:49:11 +09:00
f24b2b1be3 Make copying detached changes to realm only exposed for BeatmapSet
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
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
51d6db1bca Add equatable support to IUser and RealmUser
Not sure this will stick, but let's add it for now to make testing
detach support work nicely.
2022-01-12 17:49:11 +09:00
157dfdaa82 Fix protected beatmap sets getting deleted 2022-01-12 17:49:11 +09:00
72656ae01e Fix beatmap restore/undelete flows 2022-01-12 17:49:11 +09:00
46206f70d6 Fix beatmap mass deletion flow 2022-01-12 17:49:11 +09:00
d5239d550a Add refetch for non-managed hide/restore attempts 2022-01-12 17:49:11 +09:00
46e92c3b60 Clean up BeatmapManager query methods 2022-01-12 17:49:11 +09:00
9beabad6a4 Remove hide/restore event flow 2022-01-12 17:49:11 +09:00
c06b5951fd Fix multiple remaining warnings 2022-01-12 17:49:11 +09:00
7509a9ff8f Update BeatmapModelManager.Save to work for editor scenarios 2022-01-12 17:49:11 +09:00
8c3dc4333d Fix incorrect realm access after new beatmap import 2022-01-12 17:49:11 +09:00
2ce80cc030 Add back caching in WorkingBeatmapCache 2022-01-12 17:49:11 +09:00
286994a808 Fix BeatmapDifficulty cloning regression 2022-01-12 17:49:11 +09:00
f451560203 Update null allowances across beatmaps and scores 2022-01-12 17:49:11 +09:00
6033a825ed Ensure BeatmapInfo Difficulty and Metadata is non-null 2022-01-12 17:49:11 +09:00
a0f8debafe Add note about BeatmapMetadata.Author being weird 2022-01-12 17:49:10 +09:00
83ccbc1d13 Mention safety failures of Beatmap/Score constructors 2022-01-12 17:00:17 +09:00
c831e9107a Fix BeatmapInfo.Clone potentially not cloning if already detached 2022-01-12 17:00:17 +09:00
e5af673b01 Fix incorrect BeatmapInfo.ToString implementation 2022-01-12 17:00:17 +09:00
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
76670a8faa Fix BeatmapDifficultyCache not working with detached beatmaps 2022-01-12 17:00:17 +09:00
aaefd72c69 Handle ignored mappings locally in Detach configuration 2022-01-12 17:00:17 +09:00
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
0793b0f0ab Fix Max lookup methods not checking for zero beatmap count 2022-01-12 17:00:16 +09:00
dcd69e852e Add back settable RulesetID for now 2022-01-12 17:00:16 +09:00
2a980cc474 Fix BeatmapInfo file lookup not handling the case where no files exist
Quite common for test scenes.
2022-01-12 17:00:16 +09:00
99e46cd26b Fix missing BeatmapMetadata.ToString
This is relied on by a few usages.
2022-01-12 17:00:16 +09:00
fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
1f9318265e Update ToLive usages in line with recent changes 2022-01-12 17:00:16 +09:00
db05727ec4 Remove unused includeProtected parameter 2022-01-12 17:00:16 +09:00
b91f309879 Inline query methods from BeatmapModelManager to BeatmapManager where possible 2022-01-12 17:00:16 +09:00