Commit Graph

30669 Commits

Author SHA1 Message Date
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