Dean Herbert
f7c5a3f506
Use similar method of consuming OnlineID
as done in beatmap classes
2021-12-10 18:34:31 +09:00
Dean Herbert
c9f6c5c673
Add MatchesOnlineID
implementation for IScoreInfo
2021-12-10 18:34:31 +09:00
Dean Herbert
5f6e887be7
Remove OnlineID
comparison from ScoreInfo.Equals
...
This matches the implementation we have for `BeatmapInfo` and
`BeatmapSetInfo`. All comparisons of `OnlineID` should be done directly
using them (ie. how it's done in `ScoreModelDownloader`).
2021-12-10 18:17:43 +09:00
Dean Herbert
c6d0d6451d
Change IScoreInfo.User
to an interface type
2021-12-10 16:11:49 +09:00
Dean Herbert
dbb08f7d46
Use OnlineID
for set operations
2021-12-10 16:11:48 +09:00
Dean Herbert
7ac63485ef
Add setter for ScoreInfo.OnlineID
2021-12-10 16:11:48 +09:00
Dean Herbert
bf1418bafc
Use OnlineID
instead of legacy IDs for equality and lookups
2021-12-10 16:11:48 +09:00
Dean Herbert
8d9c37a825
Merge branch 'master' into primary-key-consistency
2021-12-08 21:34:38 +09:00
Bartłomiej Dach
f051720fa1
Fix score encoder being dependent on current culture
...
As it turns out, on some cultures, the "negative integer" sign is not
encoded using the U+002D HYPHEN-MINUS codepoint. For instance, Swedish
uses U+2212 MINUS SIGN instead. This was confusing the legacy decoder,
since it is correctly depending on the serialisation being
culture-independent.
To fix, ensure that the special "end replay" frame, as well as the
replay MD5 hash, are generated in a culture-invariant manner.
Thankfully the replay MD5 hash is currently being discarded in
`LegacyScoreDecoder`, so it changing in future scores should not have
any negative effect on lazer operation.
2021-12-04 17:13:43 +01:00
Dan Balasescu
f712aeee01
Merge pull request #15795 from peppy/realm-integration/separate-download-flow
...
Split out download logic from main manager classes
2021-11-25 20:59:23 +09:00
Dan Balasescu
8baf00c023
Remove unused using
2021-11-25 19:36:06 +09:00
Dan Balasescu
d3a4890c31
Merge branch 'master' into realm-integration/stable-export-flow
2021-11-25 19:06:18 +09:00
Dean Herbert
eeccf836ec
Remove unnecessary GameHost
parameter
2021-11-25 17:42:41 +09:00
Dean Herbert
a2ab9f457d
Move score download logic out of ScoreManager
2021-11-25 17:33:04 +09:00
Dean Herbert
cc1b91e4bd
Split out legacy model export logic into LegacyModelExporter
classes
2021-11-25 16:41:12 +09:00
Dean Herbert
7488ccd5fe
Update all models to implement IHasNamedFiles
2021-11-25 16:41:12 +09:00
Dan Balasescu
6d60725b31
Merge branch 'master' into realm-integration/stable-import-flow
2021-11-25 16:36:02 +09:00
Dean Herbert
6cab7b877d
Move stable import handling into its own class
2021-11-25 15:36:58 +09:00
Dean Herbert
60b207f20a
Reduce interface exposure of ScoreManager
2021-11-25 14:34:13 +09:00
Dean Herbert
ddbd4f9473
Merge branch 'master' into remove-model-file-list-inits
2021-11-24 18:39:01 +09:00
Dean Herbert
bbd3ea5b77
Update all actual usages of RulesetInfo.ID
to use OnlineID
instead
2021-11-24 15:50:26 +09:00
Dean Herbert
99a139dc98
Initialise all file lists at construction time (and remove setter)
2021-11-24 13:56:21 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
...
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
...
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.
To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert
eecf6ad558
Add IsManaged
helper method to EF classes to match realm implementation
2021-11-19 21:56:06 +09:00
Dean Herbert
59e763467f
Move StoragePath
implementation to an extension method
2021-11-19 16:08:38 +09:00
Dan Balasescu
9182eab486
Rename method + xmldoc
2021-11-17 20:45:48 +09:00
Dan Balasescu
08f129b4c8
Expose LegacyScoreDecoder.CalculateAccuracy()
2021-11-17 20:09:30 +09:00
Bartłomiej Dach
eba3cfc96e
Move ScoreInfo
string representation to extension method
2021-11-09 13:23:57 +01:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events
2021-11-08 13:35:49 +09:00
Dean Herbert
0ecf5f201c
Rename User
to APIUser
and move to correct namespace
2021-11-07 11:26:01 +09:00
Dean Herbert
89cc2523ef
Fix incorrectly specified events
2021-11-06 22:31:49 +09:00
Dean Herbert
2881ce0f5a
Merge branch 'master' into remove-stupid-weak-reference-bindable-events
2021-11-06 14:08:39 +09:00
Dean Herbert
54f72d68ca
Revert weird event flow in model manager/importers
2021-11-05 19:12:49 +09:00
Dean Herbert
6c385ccd29
Move second generic to abstract
model downloader rather than interface type
2021-11-05 17:37:05 +09:00
Dean Herbert
1fe9bca819
Change ModelDownloader
's requirement to an IModelImporter
rather than IModelManager
2021-11-05 16:47:18 +09:00
Dean Herbert
b90f44493c
Remove importer inheritance from IModelManager
...
Now only exists in legacy implementations, to reduce inheritance
complexity of interfaces which are going to be used going forwards.
2021-11-05 16:45:38 +09:00
Dean Herbert
b98faf6159
Merge branch 'master' into score-refactor/isolated-serialisation
2021-11-01 15:49:25 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker
2021-11-01 13:15:36 +09:00
Dean Herbert
b63a90966b
Remove misplaced access modifier in interface specification
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-10-31 23:49:26 +09:00
Bartłomiej Dach
e9ba1ea198
Mark IScoreInfo
implementation with region
2021-10-30 15:08:45 +02:00
Bartłomiej Dach
8053b2c320
Merge branch 'master' into score-refactor/isolated-serialisation
2021-10-30 15:07:34 +02:00
Bartłomiej Dach
6e4f7af8d3
Mark IHasOnlineID
implementation with region
2021-10-30 14:15:20 +02:00
Dean Herbert
cd7bd935f6
Remove Statistics
from interface until we figure how to properly deserialise
2021-10-29 14:18:10 +09:00
Dean Herbert
54073d8a1e
Isolate score submissions model and remove serialisation from ScoreInfo
2021-10-29 14:13:43 +09:00
Dean Herbert
1944c255a7
Implement score interfaces
2021-10-29 13:49:30 +09:00
Dean Herbert
49b5de64be
Extract interface
2021-10-29 13:41:21 +09:00
Dean Herbert
34d4715220
Allow for long
online IDs and implement in ScoreInfo
2021-10-29 11:48:36 +09:00
Dean Herbert
617e6febb6
Refactor ModelDownloader
to allow for different OnlineID matching
2021-10-27 21:00:46 +09:00
Dean Herbert
9015ac6ba8
Implement new version of download tracker
2021-10-27 21:00:46 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
b3219bb592
Update usages of OnlineID
2021-10-18 16:16:36 +09:00
Dean Herbert
e9c3d09e0e
Remove redundant specs
2021-10-15 16:27:16 +09:00
Dean Herbert
6d6de5b677
Remove redundant tuple naming
2021-10-10 16:50:55 +09:00
smoogipoo
4475697a9c
Add score id key
2021-10-10 15:47:39 +09:00
smoogipoo
c49d0a5013
Rewrite query to be easier to understand
2021-10-10 15:43:24 +09:00
smoogipoo
b82ed3f167
Fix potential blocking operation on OrderByTotalScoreAsync()
...
In reality this wouldn't be a long process, but the blocking is really
noticeable if you add a Task.Delay(1000) in GetTotalScoreAsync().
2021-10-08 14:23:54 +09:00
Dan Balasescu
4bd1083388
Merge pull request #14903 from peppy/importer-returns-live
...
Add `ILive<T>` and use as return type of `Import` methods
2021-10-04 20:16:32 +09:00
Dean Herbert
853cf6feaa
Rename last remaining BeatmapInfo Beatmap
usage
2021-10-04 17:35:53 +09:00
Dean Herbert
63f0b0c932
Rename out of place interface name
2021-10-04 16:35:55 +09:00
Dean Herbert
a2e61883e3
Initial push to use ILive
in import process
2021-09-30 22:55:25 +09:00
Dean Herbert
3e3b9bc963
Split out IModelDownloader
and also split apart ScoreManager
2021-09-30 18:25:20 +09:00
Dean Herbert
5618c9933b
Expose more pieces of ArchiveModelManager
via interfaces
2021-09-30 16:44:39 +09:00
Dean Herbert
cf633973a9
Refactor exposed mod retrieval methods for better safety
2021-09-10 11:09:13 +09:00
Dean Herbert
2edb851008
Add ability to lookup mod from a type specification
2021-09-09 16:50:59 +09:00
Dean Herbert
3d8faea4b0
Simplify nesting of OrderByTotalScoreAsync
2021-09-07 18:52:25 +09:00
smoogipoo
df7480e68c
Fix bindable implementation being synchronous
2021-09-01 20:56:23 +09:00
smoogipoo
ab538dc3dd
Fix param not passed through
2021-09-01 20:30:26 +09:00
smoogipoo
88fc53200e
Refactor
2021-09-01 15:41:52 +09:00
smoogipoo
fee94236de
Fix update-thread pauses
2021-08-31 21:36:31 +09:00
smoogipoo
cfcf3d7507
Use synchronous total score retrieval for bindable
2021-08-31 20:43:50 +09:00
smoogipoo
d03950fb37
Move score calculation to ScoreManager
2021-08-30 19:33:09 +09:00
Salman Ahmed
3409bc6b27
Update mapper usages with LocalisableDescription
2021-07-31 01:47:14 +03:00
Lucas A
ff3d38de6f
Localise accuracy display.
2021-07-23 22:37:08 +02:00
Dean Herbert
e507faef29
Add deep cloning support to Score
/ScoreInfo
/Replay
2021-07-19 14:14:28 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault()
extension
2021-07-18 21:52:16 +02:00
Dean Herbert
ec71deec51
Remove some mentions of "lazer"
...
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +09:00
Dean Herbert
e4ca6a4266
Serialise and send ruleset ID as part of score submission
2021-06-29 01:55:09 +09:00
Dean Herbert
d1f852d102
Make Populate
abstract to avoid unnecessary base call async complexity
2021-06-27 14:29:02 +09:00
smoogipoo
37babbde6a
Simplify score filter row
2021-06-16 19:09:11 +09:00
Dean Herbert
4ee7721c51
Extract first version out to constant
2021-06-08 18:38:47 +09:00
Dan Balasescu
d31e3e8f1c
Fix nullref
2021-06-08 18:23:03 +09:00
Dean Herbert
b287366c8b
Remove forgotten classic mod addition
2021-06-08 18:09:57 +09:00
Dean Herbert
061e3d7f26
Move legacy ScoreInfo
to be completely based on presence of classic mod
2021-06-08 18:00:09 +09:00
Dean Herbert
4d9fffc01b
Update score encoder version to be higher than any existing stable version
2021-06-08 17:59:43 +09:00
PercyDan54
e716162ac2
Fix formatting
2021-04-29 17:19:25 +08:00
PercyDan54
4fe1497f63
Add comment & remove lastF
2021-04-28 20:39:06 +08:00
PercyDan54
126056c436
Fix precision loss on exporting legacy replays
2021-04-28 19:27:18 +08:00
smoogipoo
213ac88a8b
Fix exported scores not being compatible with osu-stable
2021-04-26 20:52:20 +09:00
smoogipoo
6560dc2d1f
Fix exported replays being wrapped in zip packages
2021-04-26 20:46:44 +09:00
smoogipoo
8a6267580a
Fix nullref
2021-04-22 18:44:14 +09:00
Salman Ahmed
1a715b2926
Append "classic" mod to legacy scores
2021-04-21 09:16:28 +03:00
smoogipoo
e9a114a15c
Rename property back
2021-04-12 20:50:18 +09:00
smoogipoo
8413b0a5d3
Don't map api mods to DB
2021-04-12 20:49:44 +09:00
smoogipoo
625484468e
Fix DB serialisation
2021-04-12 20:49:37 +09:00
smoogipoo
982d8fa8b1
Fix incorrect reference
2021-04-12 20:49:26 +09:00
smoogipoo
d2d7f77430
Fix mods not being serialised correctly in ScoreInfo
2021-04-12 20:09:01 +09:00
Dean Herbert
630faa3b56
Add TODO marking incorrect EF core data type
...
As mentioned in the comment, we probably don't need to be storing this
in the database in the first place (as it should be able to be
calculated from the other statistics we have available to us). Something
to consider when we refactor the database backend.
2021-03-25 17:50:21 +09:00
Bartłomiej Dach
a16c0641b2
Revert EF Core to version 2.2
...
This reverts commit f3faad74d5
, reversing
changes made to 712e7bc7bf
.
Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
smoogipoo
917717686a
Expand explanatory comment
2021-03-18 19:26:29 +09:00