261b4988f9
Only catch RealmExceptions
to avoid blocking the nested TimeoutException
2022-01-19 10:58:59 +09:00
195534a1d2
Only output "successful" messages when copy actually occurred
2022-01-19 10:31:13 +09:00
e1a35714be
Add notification for debug builds when database migration occurs
2022-01-19 10:31:10 +09:00
04e9ffa966
Freshen some comments
2022-01-19 10:20:56 +09:00
64a023665e
Avoid taking more than one backup per migration run
2022-01-19 10:20:56 +09:00
3bc091fe6d
Add ignore rules on more helper properties
2022-01-19 09:46:45 +09:00
761e161eec
Add comment explaining ignore rule
2022-01-19 09:44:21 +09:00
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
f2b151023e
Create separate automapper configurations to reduce cyclic detach overhead
...
This optimises the `BeatmapSetInfo` detach operation by avoiding
detaching `BeatmapSetInfo.Beatmaps[].BeatmapSetInfo` a second time over.
2022-01-19 00:03:24 +09:00
67bf95bc91
Remove all usage of AuthorString
2022-01-18 23:30:40 +09:00
3596c6ed5d
Add some missing IgnoredAttributes
to reduce automapper overhead
2022-01-18 23:25:30 +09:00
7f65f3a47f
Remove all usage of BaseDifficulty
(and access Difficulty
instead)
2022-01-18 22:57:39 +09:00
6b0bf38c93
Use a single EF context to avoid scores getting cascade deleted along the way
2022-01-18 20:47:53 +09:00
6ddd2d59d3
Remove EF helper methods
2022-01-18 20:44:26 +09:00
bb5b9458e8
Remove all EF migrations
2022-01-18 20:42:48 +09:00
f5b8653491
Add spaces to query string
2022-01-18 19:28:09 +09:00
519f7e6ad2
Don't bother with removing from EF as the file is going to be deleted anyway
2022-01-18 19:17:47 +09:00
3b0977903b
Use IQueryable
directly to avoid insane overheads
2022-01-18 19:17:47 +09:00
27ea37c690
Rewrite TopLocalRank
to use realm subscriptions
...
This addresses the number one performance concern with realm (when
entering song select). Previous logic was causing instantiation and
property reads of every score in the database due to the `AsEnumerable`
specfication.
2022-01-18 18:17:53 +09:00
02baad30d7
Merge branch 'master' into global-bindable-thread-safety
2022-01-18 18:12:00 +09:00
d10d657073
Merge pull request #16421 from Susko3/textbox-AllowIme-false
...
Add `AllowIme => false` to text boxes where applicable
2022-01-18 18:02:47 +09:00
49fcff190a
Merge branch 'master' into realm-integration/reinit-on-corrupt
2022-01-18 18:02:23 +09:00
7baada2fa6
Merge branch 'master' into realm-integration/safer-migration
2022-01-18 18:01:46 +09:00
73a1f27ce5
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-18 17:31:37 +09:00
39c9c4985b
Merge branch 'master' into textbox-AllowIme-false
2022-01-18 17:03:51 +09:00
488f044924
Remove one more outdated comment
2022-01-18 16:46:14 +09:00
8b8940439e
Fix starting game with non-default ruleset failing
2022-01-18 16:22:15 +09:00
246a4a4bfe
Add support for starting with a fresh realm database if the existing one is not usable
...
The most common scenario is switching between schema versions when
testing. This should alleviate the manual overhead of that for the
majority of cases.
For users, this will show a notification on startup if their database
was purged, similar to what we had with EF.
2022-01-18 16:05:13 +09:00
b4fdd8a986
Merge pull request #16489 from peppy/aggregate-score-tests
...
Add test coverage of aggregate scores displaying correctly at multiplayer/playlists screens
2022-01-18 16:03:06 +09:00
a5862ca00d
Improve reliability of mod deserialisation
2022-01-18 15:46:27 +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
1b62a685f3
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-18 15:07:59 +09:00
3429fd8768
Fix transaction scope and add even more logging
2022-01-18 14:47:00 +09:00
bf50a9b8f8
Also backup the realm database before migration
2022-01-18 14:30:41 +09:00
2b1c15b6cc
Allow BlockAllOperations
to be called from a non-update thread if update has never run
2022-01-18 14:30:32 +09:00
cf30d48721
Add more logging during migration process
2022-01-18 14:21:33 +09:00
798482c941
Create backups before deleting scores and beatmaps from EF database
2022-01-18 14:21:33 +09:00
b1a75ce480
Permanently delete client.db
after migration completes
2022-01-18 14:17:43 +09:00
a714941f93
Rename EF variable to make reading code easier
2022-01-18 14:06:22 +09:00
d26f4d50bd
Add test coverage of aggregate room scores displaying correctly
2022-01-18 14:00:12 +09:00
da9a60a695
Update broken test scenes to match new OsuTestScene
logic
2022-01-18 13:41:50 +09:00
b9aae5569f
Fix OsuTestScene
potentially mutating global bindables
2022-01-18 13:29:24 +09:00
b9ec860cf2
Ensure global beatmap/ruleset are always mutated from the update thread
...
This came up while testing the new realm thread, where `MusicController`
would fall over when `OsuTestScene` changes the global beatmap from an
async load thread (causing a cross-thread realm access).
We don't want to have to schedule every usage of these bindables, so
this seems like a good constraint to put in place.
2022-01-18 13:29:24 +09:00
ebc9d3a613
Fix playlist aggregate scores not displaying (again)
2022-01-18 11:57:38 +09:00
a7db793d8c
Specify realm pipe path location
...
I can't confirm this works yet, since I'm not sure what the
preconditions are for the `.note` file to be created. What I can confirm
is that a `.note` file hasn't appeared in my game data directory yet.
2022-01-18 11:43:23 +09:00
f9c5000774
Remove obsoleted sentry disposal call and fix incorrectly unbound logger event
2022-01-18 11:27:28 +09:00
911a837f62
Update framework
2022-01-18 11:09:35 +09:00
125439d177
Update all (non-NET6) nuget packages
2022-01-18 11:09:26 +09:00
e9c96908d5
Merge pull request #16481 from peppy/fix-scores-container-tests
...
Rewrite `TestSceneScoresContainer` to work again
2022-01-17 20:39:14 +09:00
12fd279b7d
Add test to check full flow of rebinding gameplay key bindings
...
Addresses a regression found in realm PR that was not covered by tests.
2022-01-17 16:00:17 +09:00