Dean Herbert
21e8ab8357
Return ILive
from ToLive
calls instead of realm-typed instance
2021-11-29 14:12:22 +09:00
Bartłomiej Dach
93b5aec23e
Fix realm migration failures when upgrading from old versions
...
* `RealmRulesetSetting` was added in 2021.916.0.
* `RealmKeyBinding` was added in 2021.703.0.
Attempting to upgrade from older releases than the above would cause
migrations up to schema versions 10 and 11 to fail.
2021-11-28 15:00:40 +01:00
Dan Balasescu
5e53f51c99
Merge pull request #15812 from peppy/realm-live-unmanaged-fetch-fix
...
Avoid attempting to fetch a non-managed `RealmLive` instance from the realm backing
2021-11-26 15:37:58 +09:00
Dean Herbert
40d1b97af1
Avoid attempting to fetch a non-managed RealmLive
instance from the realm backing
...
For compatibility reasons, we quite often convert completely unmanaged
instances to `ILive`s so they fit the required parameters of a property
or method call. This ensures such cases will not cause any issues when
trying to interact with the underlying data.
Originally I had this allowing write operations, but that seems a bit
unsafe (when performing a write one would assume that the underlying
data is being persisted, whereas in this case it is not). We can change
this if the requirements change in the future, but I think throwing is
the safest bet for now.
2021-11-26 15:06:14 +09:00
Dean Herbert
13612c0d02
Add equality support to ILive
types
2021-11-26 14:56:16 +09: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
d3a4890c31
Merge branch 'master' into realm-integration/stable-export-flow
2021-11-25 19:06:18 +09:00
Dean Herbert
e2ebcf7a26
Remove unnecessary manager parameter
...
Confused why I added this in the first place..
2021-11-25 18:36:03 +09:00
Dean Herbert
eeccf836ec
Remove unnecessary GameHost
parameter
2021-11-25 17:42:41 +09:00
Dean Herbert
79459c1aeb
Fix typo in class and variable names
2021-11-25 17:12:15 +09:00
Dean Herbert
ec9a09d5a4
Add missing licence headers
2021-11-25 16:56:19 +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
a0fa030f55
Rename base class to LegacyModelImporter
2021-11-25 16:33:04 +09:00
Dean Herbert
2df793ca22
Inline individual importers to avoid unnecessary construction for singular import types
2021-11-25 15:44:04 +09:00
Dean Herbert
9dcb20a821
Rename Stable
to Legacy
and add xmldoc
2021-11-25 15:39:05 +09:00
Dean Herbert
6cab7b877d
Move stable import handling into its own class
2021-11-25 15:36:58 +09:00
Dean Herbert
bcdb73e1e8
Clean up files last
2021-11-25 14:28:27 +09:00
Dean Herbert
315e126497
Add automatic clean-up call for RealmFileStore
2021-11-25 14:17:44 +09:00
Dean Herbert
fd321109da
Remove unnecessary virtual
specification on Refresh
2021-11-25 14:06:12 +09:00
Dan Balasescu
1865227e08
Merge pull request #15773 from peppy/remove-model-file-list-inits
...
Initialise `IHasFiles<TFile>.Files` lists at construction time
2021-11-24 21:05:36 +09:00
Dean Herbert
052ed8f930
Add online status to RealmBeatmapSet
2021-11-24 18:48:02 +09:00
Dean Herbert
ddbd4f9473
Merge branch 'master' into remove-model-file-list-inits
2021-11-24 18:39:01 +09:00
Dan Balasescu
c4b5a07f4b
Merge branch 'master' into realm-move-data-migration-to-context-factory
2021-11-24 14:40: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
5a0a95f9d4
Trim whitespace
2021-11-24 13:48:59 +09:00
Dean Herbert
6aed41eacc
Merge branch 'master' into realm-move-data-migration-to-context-factory
2021-11-24 12:38:44 +09:00
Dean Herbert
63b09b356f
Rewrite commments to read better
2021-11-24 12:37:09 +09:00
Dean Herbert
6cd1bfd94f
Remove outdated comment
2021-11-24 12:35:05 +09:00
Bartłomiej Dach
0d409fa33e
Merge branch 'master' into realm-ruleset-keybinding-short-name
2021-11-23 20:18:58 +01:00
Dean Herbert
6b134359c9
Handle the case where the ruleset isn't found in the EF database any more
2021-11-23 19:15:52 +09:00
Dean Herbert
4149d458f0
Move realm data migrations inside the RealmContextFactory
2021-11-23 18:14:15 +09:00
Dean Herbert
d9917ee6c7
Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name
2021-11-23 18:13:26 +09:00
Dean Herbert
40cd998f99
Fix incorrect disposal
2021-11-23 18:13:05 +09:00
Dean Herbert
782191c410
Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name
2021-11-23 17:48:48 +09:00
Dean Herbert
b1b6723826
Add xmldoc and verbatim string markers
2021-11-23 17:47:43 +09:00
Dean Herbert
505fede44d
Pass the full EF context rather than a legacy RulesetStore
2021-11-23 17:40:20 +09:00
Dean Herbert
d94b27a8a2
Switch realm ruleset key bindings to use ruleset's ShortName
as key
2021-11-22 18:52:30 +09:00
Dean Herbert
329bae50b0
Switch realm ruleset configuration to use ruleset's ShortName
as key
2021-11-22 18:52:00 +09:00
Dean Herbert
ca26b6c540
Provide RealmContextFactory
with the EF RulesetStore
for migration purposes
2021-11-22 18:51:44 +09:00
Dean Herbert
d2062ff97f
Reformat realm migrations list for legibility
2021-11-22 18:47:18 +09:00
Dean Herbert
361cb78880
Fix realm applying migrations from one version too early
2021-11-22 18:46:46 +09:00
Dean Herbert
83b4625bd5
Replace existing cases with new helper method
2021-11-19 22:15:41 +09: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
Dean Herbert
726a0cc091
Merge branch 'master' into beatmap-collection-inteface-types
2021-11-16 15:31:10 +09:00
Dean Herbert
a4c11e8813
Use extension method to compare online IDs
2021-11-15 14:34:50 +09:00
Bartłomiej Dach
e66b637587
Merge branch 'master' into fix-android-score-imports
2021-11-12 11:40:15 +01:00
Dean Herbert
692e846acd
Rename BeatmapSetInfo.OnlineBeatmapSetID
to OnlineID
to match interface
2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634
Rename BeatmapInfo.OnlineBeatmapID
to OnlineID
to match interface
2021-11-12 17:46:24 +09:00
Dean Herbert
adf81d7fcd
Add pathway to correctly handle stream-based imports which are not zip archives
2021-11-12 16:42:07 +09:00
Dean Herbert
ad8a710a69
Fix failed imports being incorrectly considered as successfully importing for notification purposes
2021-11-12 16:10:46 +09:00
Bartłomiej Dach
5ec8288508
Add GetDisplayString()
extension to handle all model interface types globally
2021-11-09 13:53:07 +01:00
Dean Herbert
dfbc1f3394
Fix "conflicting" variable name
2021-11-09 17:42:03 +09:00
Dean Herbert
999d625e76
Fix realm migration potentially failing for users that haven't run osu! in a long time
...
As reported at https://github.com/ppy/osu/discussions/15530 .
2021-11-09 14:51:10 +09:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events
2021-11-08 13:35:49 +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
9a7c75508e
Merge branch 'master' into user-class-cleanup
2021-11-05 19:56:18 +09:00
Dean Herbert
54f72d68ca
Revert weird event flow in model manager/importers
2021-11-05 19:12:49 +09:00
Salman Ahmed
771bcbf868
Rename one more clashing variable
2021-11-05 12:24:07 +03: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
99df37f32d
Add input generic type to IModelDownloader
2021-11-05 17:02:45 +09:00
Dean Herbert
846c80f12c
Rename remaining clashing variables to appease CI somewhere
2021-11-05 17:02:24 +09:00
Dean Herbert
7772a97cf7
Add helper function to get realm class names rather than hard-coding each time
2021-11-05 17:01:00 +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
7acc4a4708
Refactor realm migrations to be a touch more legible
2021-11-04 18:57:54 +09:00
Dean Herbert
777b2cbcc4
Add realm migration for new author storage
2021-11-04 18:57:54 +09:00
Dean Herbert
b9983add15
Rename User
to APIUser
and move to correct namespace
2021-11-04 18:21:31 +09:00
Dean Herbert
ca438a102d
Fix beatmap paths including invalid slash/backslash characters
2021-11-03 16:46:05 +09:00
Dan Balasescu
c51349de57
Merge pull request #15358 from peppy/online-id-potentially-zero
...
Add a note about `OnlineID` potentially being zero in non-autoincrement cases
2021-11-01 15:54:08 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker
2021-11-01 13:15:36 +09:00
Bartłomiej Dach
b0c4fa662d
Merge branch 'master' into long-online-id-score-info
2021-10-30 14:35:30 +02:00
Dean Herbert
aff216840f
Add a note about OnlineID
potentially being zero in non-autoincrement cases
2021-10-29 16:54:03 +09:00
Dean Herbert
3b095e1626
Merge branch 'master' into beatmap-refactor/download-tracker
2021-10-29 11:50:54 +09:00
Dean Herbert
34d4715220
Allow for long
online IDs and implement in ScoreInfo
2021-10-29 11:48:36 +09:00
Dean Herbert
3838fe5c6a
Fix typo in variable name
2021-10-29 11:39:15 +09:00
Dean Herbert
8d21f0b04b
Add migration to reset conflicting scroll speed key bindings
2021-10-29 11:14:22 +09:00
Dean Herbert
add39fbd4f
Merge branch 'master' into fix-skin-layout-editor-crash
2021-10-28 06:24:24 +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
95837990f3
Apply some second-pass inspections that appeared after previous changes
2021-10-27 13:09:30 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
370775af68
Fix some surrounding code formatting
2021-10-26 14:05:07 +09:00
Dean Herbert
26cf5370c3
Remove unused reader
parameter
2021-10-24 23:48:46 +09:00
Susko3
51c5d0aec7
Update to be in line with framework changes
2021-10-24 13:21:41 +02:00
Susko3
4a425b5c3e
Merge remote-tracking branch 'upstream/master' into use-ShowFileInNativeExplorer
2021-10-23 10:01:24 +02:00
Dean Herbert
eef9949a0a
Remove unnecessary branching around EF logic
2021-10-22 14:48:20 +09:00
Dean Herbert
59b7210efa
Revert disallowing imports with no files
...
While it is logical that we want this, from a testing perspective this is a bit of a nightmare to fix. Let's revisit at a later point in time.
2021-10-21 13:43:42 +09:00
Dean Herbert
9e6e41d7c0
Add migration to reset and repopulate existing skin hashes
2021-10-20 17:56:45 +09:00
Dean Herbert
439e90fce3
Disallow archive imports with no hashable files
2021-10-20 17:45:06 +09:00
Dean Herbert
789c715f13
Add skin.ini
write support to allow for more correct hashing
2021-10-20 17:45:06 +09:00
Dan Balasescu
08f3bc3f44
Merge pull request #15120 from peppy/realm-importer
...
Implement realm beatmap importer
2021-10-20 16:44:16 +09:00
Dean Herbert
da750a74fc
Add xmldoc mention of valid OnlineID
values
2021-10-20 15:24:27 +09:00
Dean Herbert
d3ab45084d
Fix realm migration potentially failing from older releases
2021-10-19 14:19:58 +09:00
Dean Herbert
6904938dc1
Merge branch 'realm-indexed-online-id' into realm-importer
2021-10-18 16:14:37 +09:00
Dean Herbert
88a575462c
Work around weird null inspection
2021-10-18 16:11:55 +09:00
Dean Herbert
2c5ba1d8e2
Change OnlineID
to non-nullable to allow for indexing in Realm
2021-10-18 15:53:40 +09:00
Dean Herbert
3c4c9ab7a7
Move ICanAcceptFiles
specification to IModelImporter<TModel>
2021-10-18 14:25:51 +09:00
Susko3
25f172fae8
Update usages of OpenInNativeExplorer to use ShowFileInNativeExplorer
...
Also updates WrappedStorage to override ShowFileInNativeExplorer.
2021-10-17 12:56:29 +02:00
Dean Herbert
49969ac328
Add beatmap import and file store tests
2021-10-15 17:07:34 +09:00
Dean Herbert
d95a62fa56
Add models and stores for beatmap manager requirements
2021-10-15 16:58:41 +09:00
Dan Balasescu
05150b34e5
Merge pull request #15117 from peppy/update-present-import-post-import
...
Update one missed instance of `PresentImport`
2021-10-15 16:57:47 +09:00
Dean Herbert
e9c3d09e0e
Remove redundant specs
2021-10-15 16:27:16 +09:00
Dean Herbert
fdb734ac91
Also add spec directly to IModelImporter
2021-10-15 16:24:40 +09:00
Dean Herbert
818fac6ac8
Make realm a non-drawable component to better order disposal
...
Until now, the `RealmContextFactory` would be disposed as part of the
drawable hierarchy. This is too early, as it may be being used by higher
level components (like `ConfigManager`s, see #15115 ) that perform final
operations after the drawables have been disposed.
Seems to make sense moving this out of the drawable hierarchy and in
line with how we were doing things with EF.
2021-10-15 13:58:16 +09:00
Dean Herbert
93d7cdc509
Don't check whether the source realm was closed or not
...
Based on what we now know, this is not required, as long as there is
another realm context open on the same thread.
2021-10-13 15:50:06 +09:00
Dean Herbert
f5f0486e18
Merge branch 'master' into realm-live
2021-10-13 15:24:34 +09:00
Dan Balasescu
df5a76ad9d
Merge pull request #15041 from peppy/realm-file-store
...
Add realm `FileStore`
2021-10-13 13:54:56 +09:00
smoogipoo
cf10239e70
Add a few nullabilities and DCC excludes
2021-10-13 12:51:46 +09:00
Dean Herbert
f69a56a26a
Add test coverage of startup import sequence
2021-10-13 12:19:10 +09:00
Dean Herbert
e468bfb31c
Merge branch 'master' into realm-file-store
2021-10-12 23:11:02 +09:00
Dan Balasescu
7bb401b974
Merge pull request #15040 from peppy/realm-test-game-host
...
Update realm tests to run inside a `GameHost` to allow running on update thread
2021-10-12 21:16:06 +09:00
Dean Herbert
b01d82b3fd
Add RealmLive
implementation
2021-10-11 15:36:41 +09:00
Dean Herbert
6ca415da9f
Add basic realm models
...
Only the file related ones are really required outside of tests, but
seems like as good an opportunity as ever to get the rest of the models
into the game project.
2021-10-11 15:25:04 +09:00
Dean Herbert
f43badabf4
Add back update thread verification in RealmContextFactory
2021-10-11 15:20:12 +09:00
Dean Herbert
c7675be3ef
Fix typo in IModelImporter
's xmldoc
2021-10-11 15:12:51 +09:00
Dan Balasescu
4bbff2ebf7
Merge branch 'master' into new-interfaces
2021-10-06 11:38:17 +09:00
Dan Balasescu
9491e5a547
Merge pull request #14954 from peppy/rename-result-response
...
Rename `APIRequest.Result` to `Response`
2021-10-06 10:52:33 +09:00
Dean Herbert
1e4da81120
Fix import notifications not showing correct text
2021-10-05 17:14:09 +09:00
Dean Herbert
b41fa41c85
Rename APIRequest.Result
to Response
2021-10-05 14:28:56 +09:00
Dean Herbert
1d99bc280f
Merge branch 'master' into new-interfaces
2021-10-04 20:42:40 +09:00
Dean Herbert
63f0b0c932
Rename out of place interface name
2021-10-04 16:35:55 +09:00
Dean Herbert
857000b756
Mark IPresentImports
as covariant
2021-10-04 16:29:46 +09:00
Dean Herbert
3c15ef720f
Remove setter from IHasGuidPrimaryKey
interface
2021-10-04 16:26:28 +09:00
Dean Herbert
916342c837
Merge branch 'master' into importer-returns-live
2021-10-04 16:24:26 +09:00
Dan Balasescu
aca2f0c12d
Merge pull request #14901 from peppy/model-importer-split
...
Split importer interface out of `IModelManager`
2021-10-04 16:22:29 +09:00
Dean Herbert
682fe5be78
Merge branch 'master' into realm-context-factory-safer-blocking
2021-10-02 00:30:09 +09:00
Dean Herbert
b1f9bbdc69
Merge branch 'master' into model-importer-split
2021-10-02 00:29:29 +09:00
Dan Balasescu
a620b55d55
Merge pull request #14900 from peppy/model-downloader-split
...
Split `ArchiveModelManager` into two pieces
2021-10-01 23:16:09 +09:00
Dan Balasescu
d24f89fead
Merge pull request #14906 from peppy/update-realm-context-factory
...
Refine `RealmContext` implementation
2021-10-01 22:57:03 +09:00
Dean Herbert
a32f5d44e2
Improve clarity of xmldoc
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-10-01 22:23:51 +09:00
Dean Herbert
d309636460
Update all EF based models to implement new read only interfaces
2021-10-01 16:55:50 +09:00
Dean Herbert
74841cf1a9
Merge branch 'update-realm-context-factory' into realm-context-factory-safer-blocking
2021-10-01 03:54:31 +09:00
Dean Herbert
b51fd00ba3
Guard against disposal in all context retrievals
2021-10-01 03:46:53 +09:00
Dean Herbert
8557530cd5
Add back main context locking
2021-10-01 03:45:00 +09:00
Dean Herbert
cfd3bdf888
Ensure realm blocks until all threaded usages are completed
2021-10-01 01:34:35 +09:00
Dean Herbert
9fa901f6aa
Refine RealmContext
implementation API
2021-09-30 23:56:38 +09:00
Dean Herbert
a2e61883e3
Initial push to use ILive
in import process
2021-09-30 22:55:25 +09:00
Dean Herbert
66409147dc
Remove duplicate interface specification
2021-09-30 19:25:08 +09:00
Dean Herbert
c05a8fc4a2
Split importer interface out of IModelManager
2021-09-30 18:52:09 +09:00
Dean Herbert
3e3b9bc963
Split out IModelDownloader
and also split apart ScoreManager
2021-09-30 18:25:20 +09:00
Dean Herbert
0a00bc7795
Split out IPostNotifications
into an interface
2021-09-30 18:21:34 +09:00
Dean Herbert
5618c9933b
Expose more pieces of ArchiveModelManager
via interfaces
2021-09-30 16:44:39 +09:00
Dean Herbert
d4310f5d9a
Move database connection string operations local
...
In line with framework changes in
https://github.com/ppy/osu-framework/pull/4793 .
2021-09-27 17:32:41 +09:00
Dean Herbert
edb1230111
Fix potential nullref throw on failed startup
2021-09-16 22:48:09 +09:00
Dean Herbert
5bb741b4e8
Remove migration of key bindings
2021-09-15 17:04:38 +09:00
Dean Herbert
fed0e15cea
Fix typo in ArchiveModelManager
2021-08-23 20:23:46 +09:00
Dean Herbert
4bf22db4ff
Attempt to reduce skin lookup overhead where file access is not required
2021-08-17 00:23:30 +09:00
Dean Herbert
d9b5f235d8
Add xmldoc explaining thread safety limitations of IModelManager
"events"
2021-08-10 17:36:59 +09:00
Dean Herbert
459f9a0465
Handle nulls and fix missing documentation
2021-07-05 21:35:37 +09:00
Dean Herbert
9c311a6d8a
Add ability to lookup multiple users at once to UserLookupCache
2021-07-05 19:56:16 +09:00
Dean Herbert
1e4beddd2d
Disable foreign key enforcing at an sqlite level
2021-07-05 15:41:48 +09:00
Dan Balasescu
b82afaddc1
Merge pull request #13767 from peppy/fix-realm-refresh-race
...
Fix thread safety of realm `Refresh` operation
2021-07-05 13:53:29 +09:00
Dean Herbert
f510ef9153
Move previousContext
assign within lock
to make things look safer
...
Not an actual requirement, but no harm.
2021-07-05 10:49:56 +09:00
Bartłomiej Dach
3291f15dcc
Mention GetForWrite()
as another alternative to Context
accesses
2021-07-04 12:08:15 +02:00
Bartłomiej Dach
b89521314f
Mention alternatives to Context
when not on update thread in xmldoc
2021-07-04 12:07:34 +02:00
Dean Herbert
3ec7dc3bb9
Update tests in line with thread safety check
2021-07-04 17:59:39 +09:00
Dean Herbert
567e9f33a9
Fix thread safety of realm Refresh
operation
...
Due to the lack of locking, there was a chance the the update thread
`context` was retrieved just before the `flushContexts` call, followed
by `.Refresh()` being run while the blocking behaviour was invoked.
This can be seen in test failures such as
https://ci.appveyor.com/project/peppy/osu/builds/39859786/tests .
As an aside, I tried multiple different methods to avoid `lock()` on the
update thread but they felt flaky. The overhead of lock when there's no
contention is reportedly around 30-50ns, so likely not of concern. We
can address it at a later point if it becomes one.
2021-07-04 16:24:43 +09:00
Bartłomiej Dach
8a23dfa6f5
Fix optimised import path buffering events without flush
2021-07-03 17:58:12 +02:00
Dean Herbert
2f1203085b
Also add logging of realm block/flush operations
2021-06-29 20:23:25 +09:00
Dan Balasescu
a9084db665
Merge pull request #13673 from peppy/import-early-checksum-abort
...
Shortcut import process to speed up duplicate imports
2021-06-28 19:55:09 +09:00
Dan Balasescu
92fcf90768
Merge branch 'master' into import-early-checksum-abort
2021-06-28 19:29:08 +09:00
Dean Herbert
d4ea73d727
Simplify disposal exceptions
2021-06-28 16:17:09 +09:00
Dean Herbert
f78cedd0e1
Reorder methods and add xmldoc for BlockAllOperations
2021-06-28 16:16:40 +09:00
Dean Herbert
90f0bc87f5
Add safety against double disposal
2021-06-28 16:12:21 +09:00
Dean Herbert
842f033522
Remove no longer necessary exception
2021-06-28 16:11:55 +09:00
Dean Herbert
0d2bc4fc5f
Merge branch 'master' into fix-realm-state-change-crashes
2021-06-28 16:03:58 +09:00
Dean Herbert
c281e43cd8
Remove Dispose()
special case and add explicit exception to make debugging issues non-deadlock
2021-06-28 15:04:14 +09:00
Dean Herbert
a3946a1265
Fix typo in newly added xmldoc
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-06-28 14:07:21 +09:00
Dean Herbert
4d6002ab88
Remove redundant string interpolation (and mark all local logging strings as verbatim)
2021-06-28 12:16:15 +09:00
Dean Herbert
4a557e73a7
Add logging to help understand existing case skips better
2021-06-28 10:42:42 +09:00
Dean Herbert
90b87cbb9e
Add back unidirectional online id check
2021-06-28 10:11:27 +09:00
Dean Herbert
9a96cd4a1d
Revert "Remove comparison of online beatmap IDs during dedupe checks"
...
This reverts commit 15af28d2a0
.
2021-06-28 09:54:18 +09:00
Dean Herbert
e755dcc34d
Add log method for new flow
2021-06-27 20:37:12 +09:00
Dean Herbert
f470b7095d
Move private method down in class
2021-06-27 20:36:01 +09:00
Dean Herbert
f216404952
Fix missing undelete call on using existing
2021-06-27 20:22:48 +09:00
Dean Herbert
9120321731
Add comments mentioning shortcomings and avoid potential double check
2021-06-27 19:07:35 +09:00
Dean Herbert
44f875b802
Bypass optimised existing check in SkinManager
(due to custom hashing function)
2021-06-27 16:35:13 +09:00
Dean Herbert
e493685c14
Add optimised existing check earlier in import process
2021-06-27 16:34:40 +09:00
Dean Herbert
15af28d2a0
Remove comparison of online beatmap IDs during dedupe checks
2021-06-27 14:48:57 +09:00
Dean Herbert
d1f852d102
Make Populate
abstract to avoid unnecessary base call async complexity
2021-06-27 14:29:02 +09:00
Dean Herbert
63ab40ec24
Fix potential deadlocking behaviour (and convert ResetEvent
to Semaphore
)
2021-06-24 14:37:26 +09:00
Dean Herbert
df703b68ec
Merge branch 'master' into realm-key-binding-store
2021-05-25 13:41:48 +09:00
Dean Herbert
8f5b28d264
Fix "folder missing" message showing incorrectly for beatmaps folder
2021-05-20 13:56:18 +09:00
Lucas A
8530b31e39
Use bitshifts for enum values instead of literal values.
2021-05-17 21:02:45 +02:00
Lucas A
97952bc3f0
Fix backwards stable install resolution logic.
2021-05-17 18:39:04 +02:00
Lucas A
6110a847aa
Simplify import ordering logic by making beatmapImportTask non-nullable.
2021-05-17 16:30:13 +02:00
Lucas A
41fafdf643
Remove now unreachable code paths.
2021-05-17 12:55:59 +02:00
Lucas A
dabe8bd4c7
Fix code inspections and remove now unused code.
2021-05-17 12:55:58 +02:00
Lucas A
a7b740fd1d
Reword ImportFromStablePopup and display the popup regardless of whether a stable install is detected.
2021-05-17 12:55:58 +02:00
Lucas A
8ba50b1854
Bring back injected dependency incorrectly marked as unused.
2021-05-17 12:55:58 +02:00
Lucas A
481b0a0125
Add StableDirectoryLocationDialog
2021-05-17 12:55:57 +02:00
Lucas A
325a689d65
Order imports depending on beatmap imports if any is running.
2021-05-17 12:55:57 +02:00
Lucas A
851e33fd15
Hook up StableImportManager.
2021-05-17 12:55:57 +02:00
Lucas A
5d5b1e1f0e
Add StableImportManager
2021-05-17 12:55:56 +02:00
Dean Herbert
1742ee89e0
Fix incorrect xmldoc for DeleteFile
2021-05-11 18:39:14 +09:00
Dean Herbert
05e3a73a7d
Fix import cancellation not correctly being forwarded to import notification
2021-04-28 16:09:50 +09:00
smoogipoo
6560dc2d1f
Fix exported replays being wrapped in zip packages
2021-04-26 20:46:44 +09:00
Dean Herbert
b9ee63ff89
Remove public
keywords from interface implementations
2021-04-24 02:13:31 +09:00
Dean Herbert
ecde6137e0
Add missing active usage counter increment
2021-03-31 15:16:01 +09:00
Dean Herbert
37bf79e8a4
Remove unused automapper setup for the time being
2021-03-31 15:10:05 +09:00
Dean Herbert
f8cea5cae3
Merge branch 'master' into realm-migration-operation-blocking
2021-03-26 17:07:31 +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
Dean Herbert
03592fa696
Merge branch 'master' into realm-migration-operation-blocking
2021-03-19 21:33:26 +09:00
Dean Herbert
1e519f0d31
Fix seemingly innocent logic change causing breakage in score imports
2021-03-15 14:20:59 +09:00
Dean Herbert
fce21f23d6
Add comments marking workarounds required for EFcore 5
2021-03-15 13:29:26 +09:00
Dean Herbert
2904f479c6
Share file lookup workaround in ArchiveModelManager with workaround extensions class
2021-03-15 13:26:14 +09:00
Dean Herbert
79d3379f55
Reformat application of configuration
2021-03-15 13:20:22 +09:00
Dean Herbert
8a35533889
Add fall-through case to catch a potential requery for unsupported model type
2021-03-15 13:11:58 +09:00
Dean Herbert
2bdffd1004
Move skin requery logic into extension methods
2021-03-15 13:11:58 +09:00
Dean Herbert
900da7b891
Rename and refactor extenion methods to be easier to read
2021-03-15 13:11:58 +09:00
Roman Kapustin
28ef64b62a
Explicitly specify SingleQuery behavior
2021-03-14 21:43:27 +03:00
Roman Kapustin
0a1e325fc7
Extract requerying of navigational properties from DbContext
2021-03-14 19:34:53 +03:00
Roman Kapustin
5a4b0174b1
Ignore MultipleCollectionIncludeWarning
2021-03-11 22:40:35 +03:00
Roman Kapustin
47b80d2474
Workaround InvalidOperation exceptions
2021-03-11 20:51:54 +03:00
Roman Kapustin
f1302d1600
Update Microsoft.EntityFrameworkCore
2021-03-11 19:23:56 +03:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +09:00
Dean Herbert
fa95929121
Remove easy to remove finalizers
2021-03-02 16:07:09 +09:00
Dean Herbert
7e6bd0e995
Fix "failed to import" message showing when importing from a stable install with no beatmaps
2021-02-26 17:30:59 +09:00
Dean Herbert
0196ee882a
Redirect batch imports to a separate task scheduler to avoid contention with interactive actions
2021-02-17 19:41:18 +09:00
Dean Herbert
c1db33e075
Improve some xmldoc on ArchiveModelManager for methods which are not going to trigger user interactive flow
2021-02-17 19:40:56 +09:00
Dean Herbert
a080a9bdbc
Merge pull request #11603 from Game4all/handle-stable-imports-custom-songs-folder
...
Handle beatmap import from a stable installation with a custom Songs directory
2021-02-12 21:42:36 +09:00
Dean Herbert
5f23bd7259
Revert most of the changes to ArchiveModeManager by using better code
2021-02-12 12:48:32 +09:00
Lucas A
383c40b992
Address remaining reviews suggestions.
2021-01-26 20:35:42 +01:00
Lucas A
043385f919
Rename const and fix unintended tabbing.
2021-01-26 18:45:04 +01:00
Lucas A
9f9206726a
Fix typos.
2021-01-26 18:11:54 +01:00
Lucas A
51d4da565c
Fix ArchiveModelManagers lookup paths.
2021-01-24 22:25:49 +01:00
Lucas A
d71ac83428
Use StableStorage in ArchiveModelManager.
2021-01-24 19:46:10 +01:00
Dean Herbert
d69a4914e0
Add method to block all realm access during migration operation
2021-01-22 17:28:47 +09:00
Dean Herbert
47a9d2b1c2
Add missing licence header
2021-01-21 20:53:16 +09:00
Dean Herbert
34a7ce912e
Correctly close context before attempting migration
2021-01-21 19:02:09 +09:00
Dean Herbert
f6c2009509
Remove unused using
2021-01-19 20:10:10 +09:00
Dean Herbert
68f2e7f61a
Use realm support for Guid
2021-01-19 18:22:36 +09:00
Dean Herbert
f1a785f407
Merge branch 'master' into realm-key-binding-store
2021-01-19 18:22:34 +09:00
Salman Ahmed
dc91cebce9
Merge branch 'master' into multiplayer-beatmap-tracker
2021-01-18 19:15:45 +03:00
Bartłomiej Dach
1d7be6a604
Merge branch 'master' into android-multiple-import-support-suppot
2021-01-16 23:13:11 +01:00
Salman Ahmed
96feaa027d
Make ArchiveModelManager
import method overridable (for testing purposes)
2021-01-17 00:01:11 +03:00
Bartłomiej Dach
7296a6dd84
Merge branch 'master' into realm-key-binding-store
2021-01-16 16:48:54 +01:00
Bartłomiej Dach
ddc63662ba
Dispose realm in RealmWriteUsage cleanup
2021-01-16 16:39:04 +01:00
Dean Herbert
86f66727de
Update KeyBinding usages in line with interface changes
2021-01-15 14:57:01 +09:00
Dean Herbert
3e366b1f15
Ensure the main realm context is closed when the factory is disposed
2021-01-15 14:26:06 +09:00
Dean Herbert
df08d964a5
Mark the types which have been migrated in OsuDbContext
2021-01-14 16:31:18 +09:00
Dean Herbert
8a08d3f4ef
Fix transactions not actually being committed
2021-01-14 16:13:10 +09:00
Dean Herbert
af1509d892
Remove unused variable (but add back pending writes counter)
2021-01-14 15:51:19 +09:00
Dean Herbert
674e78fd93
Fix broken xmldoc
2021-01-13 18:38:30 +09:00
Dean Herbert
9bf9a8c351
Remove Live<> wrapper until it is needed
2021-01-13 18:36:37 +09:00
Dean Herbert
8442b34e84
Tidy up write usage class
2021-01-13 18:36:37 +09:00
Dean Herbert
5fa3a22f28
Remove unused RealmBackedStore base class
2021-01-13 18:36:37 +09:00
Dean Herbert
9d744d629f
Update existing usages to use the main realm context where applicable
2021-01-13 18:36:37 +09:00
Dean Herbert
542f535247
Pull out thread local contexts and have main realm refresh in update loop
2021-01-13 18:36:37 +09:00
Dean Herbert
192e58e0c6
Update all read queries to use direct realm subscriptions/queries
2021-01-13 18:36:37 +09:00
Dean Herbert
46a1d99c74
Allow detach to be run against an IQueryable directly
2021-01-12 17:01:16 +09:00
Dean Herbert
f0a9688baa
Remove unnecessary mapped type
2021-01-12 15:50:09 +09:00
Dean Herbert
7769d95e7b
Add xmldoc for extension methods
2021-01-12 15:48:26 +09:00
Dean Herbert
ff16d2f490
Mark classes nullable
2021-01-12 15:21:02 +09:00
Dean Herbert
2e4c3c8e39
Avoid closing initial context after migrations (unnecessary)
2021-01-12 14:45:36 +09:00
Dean Herbert
0dca9c8c46
Tidy up RealmContextFactory; remove delete/dispose method which wouldn't work due to threading
2021-01-12 14:45:36 +09:00
Dean Herbert
8cbad1dc1c
Add logging of opened and created contexts
2021-01-12 14:45:36 +09:00
Dean Herbert
ffb42c37df
Move schema version to const
2021-01-12 14:45:36 +09:00
Dean Herbert
0789621b85
Elaborate on comment mentioning migrations
2021-01-12 14:45:36 +09:00
Dean Herbert
fc55d67c66
Add helper method for detaching lists from realm
2021-01-12 14:45:36 +09:00
Dean Herbert
d810af82ec
Expose Live.Detach() method for ease of use
2021-01-12 14:45:36 +09:00
Dean Herbert
dd50b5870e
Move extensions methods into own class
2021-01-12 14:45:36 +09:00
Dean Herbert
6736db327a
Remove scheduler being passed in for now
2021-01-12 14:45:36 +09:00
Dean Herbert
a13b6abcff
Remove incorrect default specification from IRealmFactory interface
2021-01-12 14:45:36 +09:00
Dean Herbert
70689eee2b
Perform initial lookup if original is not managed
2021-01-12 14:45:36 +09:00
Dean Herbert
05ca016deb
Make Live implement IHasGuidPrimaryKey
2021-01-12 14:45:36 +09:00
Dean Herbert
20584c9e16
Add full xmldoc for Live class
2021-01-11 19:28:19 +09:00
Dean Herbert
9f64f6059f
Rename RealmWrapper to Live
2021-01-11 16:31:36 +09:00
Dean Herbert
5bb4d35982
Make RealmWrapper nullable enabled
2021-01-11 16:31:36 +09:00
Dean Herbert
cdb3d20fc6
Remove unnecessary warning suppression
2021-01-11 16:31:36 +09:00
Dean Herbert
6c90f9ceed
Move RealmWrapper to own file
2021-01-11 16:31:36 +09:00
Dean Herbert
86daf65630
Fix primary key not being populated for KeyBinding
2021-01-11 16:31:35 +09:00
Dean Herbert
a77519c6bd
Store KeyBinding action to its own field in realm
...
Also improve the Query method for action types by using generic field
2021-01-11 15:52:49 +09:00
Dean Herbert
382a40b243
Tidy up some missed inspections in RealmContextFactory
2021-01-11 15:52:49 +09:00
Dean Herbert
845d5cdea2
Switch guid to store as string until fody issues are resolved
...
See
https://github.com/realm/realm-dotnet/issues/740#issuecomment-755898968
2021-01-11 15:52:49 +09:00
Dean Herbert
ae76eca564
Add basic realm migration support
2021-01-11 15:52:49 +09:00
Dean Herbert
5d7ab4a7f1
Rename global statistics to be specific to realm
2021-01-11 15:52:49 +09:00
Dean Herbert
9cfede2e7e
Setup context, write usage, wrapper classes
2021-01-11 15:52:49 +09:00
Lucas A
324f80d994
Fix merge conflicts.
2021-01-02 19:14:10 +01:00
Bartłomiej Dach
a376a23ed7
Merge branch 'master' into fix-leaderboard-user-handling
2020-12-28 13:43:53 +01:00
Dean Herbert
545dcac4ec
Add null hinting on UserLookupCache query method
2020-12-28 20:13:24 +09:00
Dean Herbert
5ca9a6a980
Add xmldoc on UserLookupCache's lookup method
2020-12-28 20:05:48 +09:00
Dean Herbert
4d61c143db
Fix lookup cache throwing a null reference if no matches were successful
2020-12-28 15:03:44 +09:00
Lucas A
926281831b
Fix missing XMLDoc bit.
2020-12-19 10:36:27 +01:00
Lucas A
5d7294451f
Refactor Import() overload to take a list of import tasks instead.
2020-12-16 14:28:16 +01:00
Dean Herbert
58d7e41978
Enable nullable on ImportTask
2020-12-08 12:52:34 +09:00
Dean Herbert
77279a7e56
Update stale xmldoc on import method
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-12-08 12:48:59 +09:00
Dean Herbert
eb38bc4b4c
Add the ability to import into ArchiveModelManagers from a stream
2020-12-07 18:09:18 +09:00
Dean Herbert
009d666241
Use dictionary to avoid linq overhead
2020-11-17 10:57:11 +09:00
smoogipoo
85b0f71467
Handle duplicate user IDs within the same batch
2020-11-16 21:17:43 +09:00
smoogipoo
87bf168718
Use queue instead of list
2020-11-16 20:52:51 +09:00
smoogipoo
1b1f4c9c09
Refactor user request to fix threadsafety issues
2020-11-16 20:35:22 +09:00
Dean Herbert
4d6f0a8ea7
Fix API request error handling
2020-11-09 19:42:00 +09:00
Dean Herbert
dc69eefa51
Use HashSet instead of ConcurentBag
2020-11-09 11:54:28 +09:00
Dean Herbert
90ce1bd5f0
Add missing async suffix
2020-11-09 10:40:16 +09:00
Dean Herbert
4bbd3fe886
Handle null result
2020-11-06 18:37:27 +09:00
Dean Herbert
c97c6bbf52
Add and consume user cache class
2020-11-06 17:00:29 +09:00
Dean Herbert
d3a303e251
Use CheckExists function
2020-11-06 16:57:09 +09:00
Dean Herbert
b69ada64e8
Update BeatmapDifficultyCache to use base implementation logic
2020-11-06 14:31:21 +09:00
Dean Herbert
a2606d31c7
Move lookup/storage/compute logic to base class (and consume in ScorePerformanceCache)
2020-11-06 13:51:41 +09:00
Dean Herbert
0103b12575
Add basic base class to begin to standardise function across caching components
2020-11-06 13:26:39 +09:00
Bartłomiej Dach
2b0bea535e
Resolve CA1805 inspections
...
"Member is explicitly initialized to its default value"
2020-11-01 18:47:40 +01:00
Berkan Diler
cc11283143
Use string.Starts-/EndsWith char overloads
2020-10-16 11:27:02 +02:00
Dean Herbert
88ffcb9234
Update EndsWith usages
2020-10-16 12:58:34 +09:00
Dean Herbert
50eca202f4
User IEnumerable for HandledExtensions
2020-10-02 16:17:10 +09:00
Dean Herbert
8b255f4579
Fix test failures
...
The issue was the ArchiveModelManager change; the test local change is
just there because it makes more sense to run for every test in that
scene.
2020-09-25 18:40:22 +09:00
Dean Herbert
50ba320a51
Expand available file operations in ArchiveModelManager
2020-09-25 13:16:30 +09:00
Dean Herbert
1884e0167b
Eagerly populate skin metadata to allow usage in hashing computation
2020-09-14 23:31:03 +09:00
Dean Herbert
15b533f2a4
Hash skins based on name, not skin.ini contents
...
It is feasible that a user may be changing the contents of skin.ini
without changing the skin name / author. Such changes should not create
a new skin if already imported.
2020-09-11 16:20:54 +09:00
Dean Herbert
e80ef341d2
Allow UpdateFile to be called when a previous file doesn't exist
2020-09-03 13:20:23 +09:00
smoogipoo
443977aa8d
Remove PreUpdate, update hash in Save()
2020-06-08 14:40:17 +09:00
Dean Herbert
b41384dde8
Merge branch 'master' into multiplayer-beatmap-checksum
2020-06-07 18:05:33 +09:00
Dean Herbert
5ed3cd205f
Simplify reuse check using FileInfo IDs
2020-06-03 23:35:56 +09:00
Dean Herbert
012933545e
Add test coverage
2020-06-03 18:33:41 +09:00
Dean Herbert
c155ab8339
Check filenames and timestamps before reusing an already imported model
2020-06-03 18:03:10 +09:00
smoogipoo
dfb9687fb5
Extract update into PreUpdate(), add test
2020-06-02 17:22:09 +09:00
Dean Herbert
f989f1aa00
Change event flow to avoid firing store delete events on update
2020-05-27 16:08:47 +09:00
Dean Herbert
904d17224f
Fix english
2020-05-24 23:09:49 +09:00
Dean Herbert
234fa28445
Ensure export filename is valid
2020-05-24 22:34:31 +09:00
Dean Herbert
c071fe6140
Add the ability to export skins
2020-05-24 13:44:11 +09:00
Dean Herbert
052ad79fc6
Convert dangerous events to IBindables
2020-05-19 16:44:22 +09:00
Dean Herbert
6c350db097
Add connection flushing support
2020-05-11 21:39:44 +09:00
Dean Herbert
deb87517d0
Add local beatmap lookup cache
2020-05-02 14:35:12 +09:00
Dean Herbert
ad7cda8735
Fix download failures causing a non-safe drawable change
2020-03-10 20:11:06 +09:00
Dean Herbert
120dab18cf
Fix DownloadTrackingComposite incorrectly receiving cancelled state
2020-02-15 16:20:44 +09:00
smoogipoo
0e844b3039
Cleanup / re-protect file store
2020-01-14 19:24:53 +09:00
smoogipoo
1b3bff6fa5
Fix model file infos not being removed
2020-01-14 19:24:53 +09:00
smoogipoo
b91bcaccba
Remove outdated comment
2020-01-14 19:24:53 +09:00
smoogipoo
5f5878e37e
Dereference existing file
2020-01-14 19:24:53 +09:00
smoogipoo
b592b6d80d
Improve robustness by always creating a new file
2020-01-14 19:24:53 +09:00
smoogipoo
609102bea3
Initial file updating implementation
2020-01-14 19:24:53 +09:00
smoogipoo
681a43a318
Refactor to support beatmap updates
2020-01-14 19:24:53 +09:00
Dean Herbert
b3a7b02e3b
Merge remote-tracking branch 'upstream/master' into fix-cancelling-request-not-correct
2020-01-07 11:43:01 +09:00
Dean Herbert
74d875a2e0
Give empty archives a hash based on archive name to avoid duplicate imports
2019-12-26 18:44:50 +09:00
Salman Ahmed
89fa1be2c8
Fix download manager potentially not handling cancel requests
2019-12-25 22:55:14 +03:00
Dean Herbert
886db8eb22
Merge branch 'master' into fix-local-score-availability
2019-12-18 01:15:20 +09:00
smoogipoo
946a202ee5
Fix online replays not being available locally
2019-12-17 15:47:08 +09:00
Huo Yaoyuan
40b43b85f1
CA1715: use prefix for generic parameters.
2019-12-17 13:00:25 +08:00
Dean Herbert
76a7e9cde8
Catch file exception in test reset
2019-12-12 14:04:57 +09:00
Huo Yaoyuan
b86a3dbfab
PathStandardise -> ToStandardisedPath
2019-12-11 16:06:56 +08:00
Huo Yaoyuan
6b3c7c8421
Remove usages of FileSafety class.
2019-12-11 16:05:35 +08:00
Dean Herbert
c49aeb08c4
Add API methods to perform requests out-of-queue
2019-11-29 20:03:14 +09:00
Huo Yaoyuan
f05b83d7d4
Use typeparamref.
2019-11-17 20:48:23 +08:00
Huo Yaoyuan
e9b8cbb516
Apply other styles.
2019-11-11 20:27:04 +08:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
Dean Herbert
0cd912fcd3
Cover all non-APIAccess APIRequest calls with exception handling
2019-10-31 15:04:13 +09:00
Dean Herbert
cf3ed42bfc
Fix download tracking components getting stuck on import failures
2019-10-28 17:41:42 +09:00
Dean Herbert
66b0004448
Remove unused logger provider class
2019-10-28 12:02:58 +09:00
smoogipoo
f8eb07b211
Only lock database for the duration of a model restoration
2019-10-03 11:24:17 +09:00
smoogipoo
dfaa9531f8
Only lock the database for the duration of a deletion
2019-10-02 18:48:50 +09:00
Dean Herbert
cdf29b0952
Specify model name on initialize and fail import notification m… ( #6192 )
...
Specify model name on initialize and fail import notification messages
2019-09-22 15:54:04 +09:00
iiSaLMaN
9be8bdef52
Remove pluralize and use title letter casing
2019-09-21 21:00:24 +03:00
iiSaLMaN
6bb0f3eb41
Move humanizing to the model name instead
2019-09-21 20:04:12 +03:00
iiSaLMaN
3be03a26c9
Pluralize instead of adding 's'
2019-09-20 16:18:55 +03:00
iiSaLMaN
8300e86f20
Specify model name on import notification messages
2019-09-20 15:46:43 +03:00
smoogipoo
dfc0928ebe
Fix scores importing with deleted beatmap sets
2019-09-20 19:39:21 +09:00
Dean Herbert
ddff9882cf
Fix importing archives which are nested in a single folder within a zip
2019-09-19 19:11:04 +09:00
smoogipoo
3ebfa0505c
Don't share single scheduler across all model managers
2019-08-08 18:26:07 +09:00
Dean Herbert
cb17007fa7
Fix zero-length hash models incorrectly creating a unique hash
2019-07-29 16:57:19 +09:00
Dean Herbert
71e40b4684
Force SQLite to multithreading mode
2019-07-06 12:32:16 +09:00
Dean Herbert
598b0d668b
Merge branch 'master' into import-stable-scores
2019-07-05 15:54:33 +09:00
Dean Herbert
df7d31350c
Stop import failures from being added to the imported model list
2019-07-05 14:47:55 +09:00
Dean Herbert
80d8ce8392
Fix GetStableImportPaths xmldoc
2019-07-05 14:21:56 +09:00
Dean Herbert
ba8df3ba92
Clean up stable lookup and mutate logic
2019-07-05 13:59:31 +09:00
Dean Herbert
8346c50ce1
Rename delete method and improve xmldoc
2019-07-05 13:55:25 +09:00
Dean Herbert
7575047db8
Merge branch 'master' into import-stable-scores
2019-07-04 01:00:42 +09:00
Dean Herbert
8e54990f62
Add database statistics to GlobalStatistics
2019-07-02 13:43:43 +09:00
HoLLy
12350d18b5
Don't remove imported archives by default
2019-06-27 14:41:11 +02:00
HoLLy
55216dffb7
Merge remote-tracking branch 'origin/master' into import-stable-scores
2019-06-27 14:07:17 +02:00
naoey
61260cf599
Hand off comparison logic for database query to implementors
...
Equals overrides are not used in EF queries without running the comaprison locally instead of on the database, so to preserve that the comparison logic is instead implemented on a per manager basis.
2019-06-27 15:32:27 +05:30
Dean Herbert
72bb6f8c12
Fix download buttons not correctly finding existing downloads
2019-06-27 15:24:08 +05:30
Dean Herbert
da65658bc3
Fix comments
2019-06-26 20:07:01 +09:00
Dean Herbert
9e1cb90dd8
Remove existing argument for ItemAdded event
...
For all usages, it looks like this was unnecessary.
2019-06-26 11:40:41 +09:00
naoey
c476e46a8e
Remove unnecessary private methods and inline used-once code
2019-06-25 21:16:30 +05:30
naoey
6f5fbd7ea1
Remove unnecessary try-catch block
2019-06-25 18:28:59 +05:30
HoLLy
802da225d4
Move responsibility for selecting paths to model managers
2019-06-21 17:32:47 +02:00
HoLLy
f1f03dd541
Remove async from Import method
2019-06-21 17:01:11 +02:00
HoLLy
99f1a94797
Fix notification progress bar
2019-06-19 20:50:50 +02:00
HoLLy
0cb66d522a
Check if path can be imported before trying
2019-06-19 20:36:00 +02:00
HoLLy
ef2e93d5c7
Improve handling of null models when importing
2019-06-19 19:29:47 +02:00
HoLLy
15c75b4442
Add basic score import from stable
2019-06-19 18:33:51 +02:00
naoey
4b46601eae
Remove redundant variable, handle all request failures
2019-06-19 19:43:09 +05:30
Dean Herbert
1bcff8a3e2
Make generic covariant
2019-06-19 01:57:38 +09:00
Dean Herbert
341dc74834
Simplify download method
2019-06-19 01:41:19 +09:00
Dean Herbert
f2e0ced052
Move private event handling logic to bottom of class
2019-06-19 01:32:37 +09:00
naoey
4a16ac53ba
Remove extra newline
2019-06-15 12:28:23 +05:30
naoey
3c2a2b2390
Move doc to interface
2019-06-13 21:28:32 +05:30
naoey
7ba676ad31
Rename Info to Model
2019-06-12 21:56:36 +05:30
naoey
9cd5519da3
Remove unused delegate, use model name in notifications, add more xmldoc
...
- Applies a `class` constraint to the generic type in `IModelManager`
- Add xmldoc
2019-06-12 19:26:06 +05:30
naoey
c5f1da0f71
Merge remote-tracking branch 'upstream/master' into generic-download-model-manager
2019-06-12 18:20:35 +05:30
naoey
951a5abccc
Merge remote-tracking branch 'upstream/master' into generic-download-model-manager
2019-06-12 17:41:16 +05:30
smoogipoo
a17d480f51
Use "beatmap" as the model name
2019-06-12 20:41:02 +09:00
Dean Herbert
412c9646ec
Merge branch 'master' into improve-deletion-notification
2019-06-12 17:47:00 +09:00
smoogipoo
d4deac48ee
Improve model deletion notification text
2019-06-12 17:27:15 +09:00
smoogipoo
2a67944889
Remove interlocked within a lock
2019-06-12 17:10:55 +09:00
smoogipoo
fd7dc9504e
Remove async when not required
2019-06-12 17:08:50 +09:00
Dean Herbert
c591a6f1fa
Rename request type to be less verbose
2019-06-12 13:30:23 +09:00
Dean Herbert
eaeeffaa86
Rename to DownloadableArchiveModelManager
2019-06-12 13:28:44 +09:00
naoey
c69d3e2d38
Fix doc move derp
2019-06-12 00:02:53 +05:30
naoey
c320b6110c
Rename interface
...
- Fix wrong inheritance in ArchiveModelManager
- Add license headers
2019-06-11 23:53:37 +05:30
naoey
4a6074865e
Create interfaces for DownloadTrackingComposite to consume
2019-06-11 22:42:57 +05:30
naoey
d903ad2186
Fix order
2019-06-11 21:30:25 +05:30
naoey
06a558c4b7
Remove unecessary third generic and change usages to match
2019-06-11 21:11:30 +05:30
Dean Herbert
27054a744e
Fill in thread pool names
2019-06-12 00:35:13 +09:00
naoey
f4dab4da85
Add method to check if model exists locally already
2019-06-11 20:53:44 +05:30
naoey
709ca03a08
Remove unused usings
2019-06-11 20:21:06 +05:30
naoey
802f48712d
Add ability to perform a download request with options
2019-06-11 20:14:36 +05:30
naoey
8ff26a8fbc
Add license headers and xmldoc
2019-06-11 19:49:10 +05:30
naoey
341d137f5c
Make BeatmapManager inherit from new base class
2019-06-11 19:36:08 +05:30
naoey
b4de51b612
Create a generic base archive download manager class
2019-06-11 18:29:33 +05:30
Dean Herbert
6ca2fcebfc
Centalise and prefix all ArchiveModelManager database logging
2019-06-10 19:34:32 +09:00
Dean Herbert
29945f27c5
Fix imported count incrementing on failures
2019-06-10 19:33:55 +09:00
Dean Herbert
6cda2cdb82
Fix exception output to use humanised model name
2019-06-10 18:41:56 +09:00
Dean Herbert
f7a699e4a2
Better documentation for import scheduler singleton
2019-06-10 18:38:03 +09:00
Dean Herbert
c8bd92659b
Clean up exception and null handling in Import process
2019-06-10 17:12:37 +09:00
Dean Herbert
559413f766
Avoid using ContinueWith in already async context
2019-06-10 17:12:25 +09:00
Dean Herbert
02b376d962
Fix rollback logic not necessrily cleaning up file store
2019-06-10 16:14:42 +09:00
Dean Herbert
fae32b3901
Return shorter class name in error messages
2019-06-10 16:14:11 +09:00
Dean Herbert
9bdc8b47bb
Remove unnecessary async-await pair
2019-06-10 16:13:51 +09:00
Dean Herbert
f31b19e0d7
Don't unwrap exception manually
2019-06-10 16:02:49 +09:00
Dean Herbert
e19f4935c3
Fix incorrect undo logic on exception
2019-06-10 14:13:36 +09:00
Dean Herbert
b79fdfc12f
Fix one more instance of improperly handled cancellation
2019-06-10 13:50:22 +09:00
Dean Herbert
2d1a54e634
Properly implement cancellation
2019-06-10 13:42:38 +09:00
Dean Herbert
b4d2d0bd0b
Simplify and combine concurrency of ArchiveModelManager
2019-06-10 13:42:33 +09:00
smoogipoo
f090e292c9
Move ArchiveModelManager import process to async flow
2019-06-10 13:42:22 +09:00
Dean Herbert
6ebd13c733
Allow Delete and Undelete operations to run silently when needed
2019-05-09 15:15:02 +09:00
smoogipoo
d7c09e7dbd
Merge remote-tracking branch 'origin/master' into fix-new-inspections
...
# Conflicts:
# osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
# osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
# osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
# osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
# osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
# osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
# osu.Game/Graphics/OsuFont.cs
# osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
# osu.Game/Overlays/Profile/Header/BadgeContainer.cs
# osu.Game/Overlays/Profile/ProfileHeader.cs
# osu.Game/Screens/Select/PlaySongSelect.cs
# osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
smoogipoo
0bd35ab7bb
Turn on warnings, resolve issues
2019-04-25 17:36:17 +09:00
Dean Herbert
612db31c38
Apply newline additions
2019-04-01 12:16:32 +09:00
Dean Herbert
3a8c32d41b
Add the ability for ArchiveModelManager to re-import even when existing entry is present
2019-03-11 17:04:18 +09:00
Dan Balasescu
fd147dae21
Merge branch 'master' into fix-disabled-set-crash
2019-03-05 17:25:13 +09:00
Dean Herbert
0300f0d665
Ensure deletions are correct without relying on FK cascade rule
2019-03-01 10:47:45 +09:00
Dean Herbert
d4041d5d42
Automate includes of files in ArchiveModelManager use cases
2019-03-01 10:25:21 +09:00
Dean Herbert
5b53cf0961
Merge branch 'master' into hide-desktop-only-elements
2019-02-28 18:50:16 +09:00
Dean Herbert
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
Shane Woolcock
ce17e37c74
Conditionally add some UI elements only on desktop
...
Prevents crashes from trying to access features that are not applicable to mobile.
2019-02-28 13:10:53 +09:00
Dean Herbert
f84a84edaa
Fix oops
2019-02-25 18:59:28 +09:00
Dean Herbert
314f35b0c5
Further simplify import messaging
2019-02-25 18:42:08 +09:00
Dean Herbert
80737b9ef8
Remove "silent" parameter; consolidate import logic
2019-02-25 18:24:06 +09:00
Aergwyn
c2297b0c3b
Fix incorrect param doc
...
Co-Authored-By: peppy <pe@ppy.sh>
2019-01-29 23:04:48 +09:00
Dean Herbert
baea9691cc
Fix baetmap downloads using too much memory
2019-01-29 18:34:10 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
Roman Kapustin
4a1af67893
Do not delete file on import failure
2018-12-18 22:49:53 +03:00
smoogipoo
4144f4bd2f
Fix duplicates not being ignored if hash is null
2018-11-30 18:40:06 +09:00
smoogipoo
a8ad7d4670
Add silent import parameter
2018-11-30 18:27:13 +09:00
Dean Herbert
aa7a665317
Merge remote-tracking branch 'upstream/master' into scoredatabase
2018-11-30 17:20:23 +09:00
Dean Herbert
e82ad3539b
Move JsonIgnore specification to interface
2018-11-30 16:39:25 +09:00
Dean Herbert
705ef5e3ac
Fix hash function
2018-11-30 15:10:56 +09:00
smoogipoo
a88b69ec43
Notify of existing imports
2018-11-28 20:19:35 +09:00
Dean Herbert
ab2b2493a1
Move hashing functionality to ArchiveModelManager
2018-11-28 19:21:36 +09:00
Dean Herbert
0384f3549f
Add hash and missing indices to SkinInfo
2018-11-28 19:15:56 +09:00
Dean Herbert
ce660b6d67
Add skin de-duplication
2018-11-28 19:01:22 +09:00
smoogipoo
542a75d076
Add index on online score id
2018-11-28 18:56:20 +09:00
smoogipoo
219929eb47
Score -> ScoreInfo
2018-11-28 18:33:01 +09:00
smoogipoo
4ba7690e04
Initial scoremanager/scorestore structure
2018-11-28 16:50:16 +09:00
smoogipoo
a783fdb501
Add LegacyFileArchiveReader
...
Treats files as "archives" for import.
2018-11-28 16:13:16 +09:00
smoogipoo
0982508d26
Rename to LegacyDirectoryArchiveReader
2018-11-28 15:13:27 +09:00
smoogipoo
dc31736db7
Add explicit foreign key property to INamedFileInfo
2018-11-28 13:45:56 +09:00
smoogipoo
14ff4bc26a
Move primary key attribute to IHasPrimaryKey
2018-11-28 13:19:23 +09:00
smoogipoo
c5d2dc2f6a
Remove unnecessary newline
2018-11-28 13:05:17 +09:00
HoLLy
db443babb6
Fix database entries using platform-specific path separator
2018-10-07 19:15:42 +02:00
Dan Balasescu
e71e871d1f
Remove unnecessary comment
2018-09-26 18:41:55 +09:00
Paul Teng
f01dfc2860
Merge branch 'master' into patch-1
2018-09-20 23:45:44 -04:00
Paul Teng
eaf7697b85
Add boolean return value
2018-09-20 23:21:27 -04:00
Dean Herbert
293a5dd099
Use string interpolation
2018-09-21 11:50:36 +09:00
Paul Teng
52877eca83
Update ArchiveModelManager.cs
2018-09-20 20:01:04 -04:00
Paul Teng
8bfd981a50
Handle directory checking before entering task
2018-09-17 21:05:28 -04:00
Paul Teng
d469748612
Reformat code
2018-09-15 09:53:59 -04:00
Paul Teng
42b2c32222
Catch directory not found exception
2018-09-15 09:47:50 -04:00
Dean Herbert
55372496d1
Fix thread-safety of queued events list in ArchiveModelManager
2018-09-09 22:37:15 +09:00
Dean Herbert
bb67f1a361
Merge remote-tracking branch 'upstream/master' into add-skin-import-delete
2018-09-07 18:18:03 +09:00
Dean Herbert
168dbe9329
Fix error notification
2018-09-07 18:14:23 +09:00
Dean Herbert
2c0ba401d5
Add ability to click on imported complete notification to present last import
2018-09-07 16:30:11 +09:00
Dean Herbert
e67f63eab6
Improve import progress messaging
2018-09-03 10:10:04 +09:00
Dean Herbert
144e80dff6
Add "import all skins from stable" option (and mass delete)
2018-09-03 10:10:04 +09:00
Dean Herbert
5c7ff31675
Add note about null return
2018-08-25 14:51:42 +09:00
smoogipoo
99574ecad8
Softly handle errors when no beatmap file exists in archive
2018-08-24 17:57:39 +09:00
smoogipoo
50b8daf939
Fix threads being cross-disposed from DatabaseContextFactory
2018-08-22 14:07:52 +09:00
smoogipoo
83bda313d1
Output the currently importing model
2018-08-17 13:50:27 +09:00
smoogipoo
767c284793
Fix import not working
2018-08-15 15:49:55 +09:00
Dean Herbert
b38da34da9
Fix resetting database failing due to incorrect disposal logic
2018-07-24 12:13:48 +02:00
Dean Herbert
fc6deb6ab5
Merge remote-tracking branch 'upstream/master' into peppy-fix-model-import
2018-07-20 16:42:46 +09:00
Dean Herbert
0c24244340
Remove SingletonContextFactory
...
It is dangerous to use this as it doesn't correctly handle contexts and can cause issues that will never actually arise in normal execution.
# Conflicts:
# osu.Game/Database/SingletonContextFactory.cs
2018-07-18 16:50:56 +09:00
Dean Herbert
e3fb781a5a
Fix ArchiveModelManager's model import method not running import logic
2018-07-18 12:59:22 +09:00
Dean Herbert
4a19f22b3d
Remove custom migration exception
...
This was hiding the true error message from ever hitting logs.
Made to help disagnose #2711 .
2018-06-15 13:38:42 +09:00
Dan Balasescu
b59c45ca57
Merge branch 'master' into fix-database-migration-failure
2018-06-06 22:44:35 +09:00
Dean Herbert
a60c888ae5
Add comment about reasoning for local context variable
2018-06-06 22:05:25 +09:00
Dean Herbert
3b03a25ea5
Fix beatmaps with subfolders importing incorrectly on windows
...
Closes #2718 .
2018-06-05 11:36:44 +09:00
Dean Herbert
3a823d6c25
Fix multiple issues causing database reset to fail
2018-06-04 02:12:16 +09:00
smoogipoo
9da7bfd615
Merge remote-tracking branch 'origin/master' into fix-beatmap-import-conflicts
...
# Conflicts:
# osu.Game/Database/ArchiveModelManager.cs
2018-05-31 14:02:52 +09:00
Dean Herbert
eb89317494
Remove performance optimisation tracking disables to keep things simple for now
2018-05-30 13:43:43 +09:00
Dean Herbert
4a7de043e0
Recycle all contexts on beginning a write operation for the time being
2018-05-30 13:43:25 +09:00
Dean Herbert
e23e2bd348
Fix recycling never being performed due to incorrect ordering
2018-05-30 13:37:52 +09:00
Dean Herbert
31ab6f2408
Fix event flushing sticking on early return
2018-05-29 19:43:52 +09:00
Dean Herbert
4a18951cce
Report full error to log file
2018-05-29 18:37:45 +09:00
Dean Herbert
47d88a48a2
Add logging on import processes
2018-05-29 16:26:42 +09:00
Dean Herbert
de8c4e6d56
Remove unique constraints on hash columns
...
We are going to allow multiple instances of the same beatmap info hash as they could be in different beatmap sets.
2018-05-29 16:26:32 +09:00
Dean Herbert
c1f416b1cc
Add back missing rethrow
2018-05-29 16:23:38 +09:00
Dean Herbert
3d3026a80c
Report any error during import to the write context to allow for rollback
2018-05-29 16:23:38 +09:00
Dean Herbert
72da640059
Change order of event firing in Update calls
...
A remove event should not be fired before the update is successful.
2018-05-29 16:23:38 +09:00
Dean Herbert
80806be047
Don't start transactions for migration
...
It looks like transactions are used internally during migration.
2018-05-29 16:23:38 +09:00
Dean Herbert
a3287b8cf2
Correctly rollback failed imports
2018-05-29 16:23:38 +09:00
Dean Herbert
bcb04f6168
Improve transaction handling flexibility
2018-05-29 16:23:27 +09:00
Dean Herbert
d4e7f08c20
Bring entity framework up-to-date and re-enable transactions
2018-05-29 16:23:27 +09:00
Dean Herbert
2a87b851fa
Add proper transaction rollback logic on exception
2018-05-29 16:23:27 +09:00
Dean Herbert
32a74f95a5
Normalize all the line endings
2018-04-13 18:26:38 +09:00
smoogipoo
b97c4e8b44
Fix all possible cases of crossthread import data races
2018-04-09 12:45:44 +09:00
smoogipoo
5159127bce
Fix SQLite failing to initialize on test projects
2018-03-26 18:07:09 +09:00
Dean Herbert
0e669c9a3f
Fix many warnings
2018-03-24 18:23:22 +09:00
smoogipoo
ffa712dccb
Fix post-merge issues
2018-03-24 15:19:45 +09:00
smoogipoo
c29f7a4333
Merge remote-tracking branch 'origin/master' into netstandard
2018-03-24 14:49:46 +09:00
Dean Herbert
b8022070e8
Merge remote-tracking branch 'upstream/master' into beatmap-as-a-skin
2018-03-22 16:24:56 +09:00
Dean Herbert
9a20839b74
Merge branch 'master' into better-import-notice
2018-03-22 14:57:04 +09:00
smoogipoo
dc9fb84e25
Update progress with the current item, not the next item
...
In the case where there is no next item, the progress will not get updated, so we'll essentially skip one element from filling the progress bar further. In the future we may/will want to not hide the notification upon completion, so this will look better in such scenarios.
2018-03-22 14:46:25 +09:00
Dean Herbert
5104ba8118
Merge branch 'master' into beatmap-as-a-skin
2018-03-22 13:45:30 +09:00
Dean Herbert
101caf3064
Apply same logic fixes to delete/restore all notifications
2018-03-22 11:28:40 +09:00
Dean Herbert
625e561fc8
Fix whitespace
2018-03-20 18:01:09 +09:00
Dean Herbert
dbcf755618
Make Beatmaps parsable as skins
2018-03-20 16:05:29 +09:00
Dean Herbert
f565cc861d
Hard bail on attempting to import an invalid archive format
2018-03-19 20:41:12 +09:00
Dean Herbert
994c7bfabd
Further improvements to messaging
2018-03-19 20:40:14 +09:00
Dean Herbert
18368d2446
Make import notifications fail when any imports fail
2018-03-19 20:18:23 +09:00
Dean Herbert
e9c5834387
Add query method for now
2018-02-23 13:26:01 +09:00
Dean Herbert
402d71a8d9
Add user skin setting storage
2018-02-22 16:29:05 +09:00
Dean Herbert
4c14b32783
Add basic skin database model layout and importing
2018-02-22 15:46:11 +09:00
Dean Herbert
57e61b0b0e
Update xmldoc
2018-02-19 14:50:42 +09:00
Dean Herbert
8b89735e9e
Improve xmldoc for DatabaseContextFactory.Get
2018-02-19 14:17:41 +09:00
Dean Herbert
fa05822d7d
Add missing licence headers
2018-02-15 16:33:33 +09:00
Dean Herbert
b9ef32b09b
Further xmldoc and restoring of Cleanup method
2018-02-15 16:31:42 +09:00
Dean Herbert
1b13be1372
Cleanups and xmldoc additions
2018-02-15 16:24:14 +09:00
Dean Herbert
89cf794f98
Add a lower level ConsumableItems implementation
2018-02-15 16:15:40 +09:00
Dean Herbert
671475f3b4
Ensure undeleted items are populated with includes before firing events
2018-02-15 16:15:40 +09:00
Dean Herbert
e51450a064
Fix query construction
2018-02-15 15:24:28 +09:00
Dean Herbert
fe5df663be
Add more xmldoc
2018-02-15 15:14:46 +09:00
Dean Herbert
a0a65abcac
Crentalise all import logic
2018-02-15 14:22:39 +09:00
Dean Herbert
d3dd31dadb
Make deletion and purging logic even more global
2018-02-15 14:22:39 +09:00
Dean Herbert
d340509b1d
Move ArchiveReaders to a more global namespace
...
Also moves delete and action logic to a shared implementation
2018-02-15 14:22:39 +09:00
Dean Herbert
6ff63c2f0c
Move deletion to ArchiveModelImportManager
2018-02-15 14:22:39 +09:00
Dean Herbert
e0d28564d0
Move import logic to shared implementation
2018-02-15 14:22:39 +09:00
Dean Herbert
50cdb03cd9
Don't dispose read contexts
2018-02-13 15:08:45 +09:00
Dean Herbert
ab34123ba8
Remove unnecessary class variable
2018-02-13 15:05:19 +09:00
Dean Herbert
a738664167
Add interface for database context factory
2018-02-12 23:10:05 +09:00
Dean Herbert
64cda9fd0f
Remove incorrect assert assumption
2018-02-12 22:16:09 +09:00
Dean Herbert
8b37fde15b
Only write when writes occur
...
Also add finaliser logic for safety. Also better threading. Also more cleanup.
2018-02-12 19:57:21 +09:00
Dean Herbert
edc3638175
DatabaseWriteUsage
2018-02-12 17:55:11 +09:00
Dean Herbert
e54de0c267
Remove sqlite-net migration
...
Anyone that may have benefited from this already has.
2018-02-12 15:25:09 +09:00
smoogipoo
b500b76407
Merge branch 'master' into update-branch
2018-02-08 23:35:48 +09:00
Dean Herbert
03154dbc63
Fix incorrect initial migration
...
Also adds variant to settings
2018-01-25 23:41:03 +09:00
Dean Herbert
5a00ae36d1
Add database-based configuration for rulesets
2018-01-24 17:45:28 +09:00
Dean Herbert
37d393bca0
Update licence headers
2018-01-05 20:21:19 +09:00
smoogipoo
7a793eaded
Merge master into netstandard
2017-12-27 20:48:53 +09:00
Dean Herbert
d02e1ae896
Update RulesetInfo and add migration
2017-12-10 12:15:55 +09:00
smoogipoo
267bb75458
Merge remote-tracking branch 'Aergwyn/master' into netstandard
2017-11-29 23:45:29 +09:00
Dean Herbert
85827f83eb
Perform a reload on objects when Refreshing them
...
Previously, it was possible for an object to be "refreshed" with a stale cached state from the current thread's context.
This ensures a check against the database is performed as well.
Resolves #1562 .
2017-11-23 17:04:39 +09:00
smoogipoo
b3bf6e7bee
Merge master into netstandard
2017-11-21 16:39:21 +09:00
smoogipoo
a66edea6dc
Move sqlite batteries to osu.Desktop
...
Fixes e_sqlite.dll not being copied to output on Windows
2017-11-21 15:33:05 +09:00
Dean Herbert
7d2bbc50a3
Add unique constraint on OnlineBeatmapID
2017-11-19 01:45:17 +09:00
smoogipoo
04b271cce9
Migrate osu.Game project to VS2017 project structure
2017-10-30 22:24:11 +09:00
Dean Herbert
ead3ca1f27
Merge branch 'master' into fix-threaded-context-issues
2017-10-25 23:42:08 +09:00
Dean Herbert
6f7ba55f80
Fill out xmldoc
2017-10-25 22:19:47 +09:00
Dean Herbert
c1d133977e
FirstOrDefault -> SingleOrDefault
2017-10-25 22:17:17 +09:00
Dean Herbert
5001e9f264
Fix Hide/Restore/Delete etc.
2017-10-25 22:08:34 +09:00
Dean Herbert
8452e315f4
Allow "refreshing" instances via DatabaseBackedStore
2017-10-25 22:06:25 +09:00
Dean Herbert
487b888f4f
Add missing database indices
...
Also add missing unique constraints where applicable.
2017-10-25 22:05:10 +09:00
Dan Balasescu
05e1a7a5f8
Merge branch 'master' into online-beatmap-id-sanity
2017-10-25 21:38:33 +09:00
TocoToucan
5107489cda
Remove DatabaseBackedStore Reset functions
2017-10-25 15:12:14 +03:00
TocoToucan
63fe569afa
Remove DatabaseBackedStore Prepare functions
2017-10-25 14:53:20 +03:00
Dean Herbert
66f1d2fb2e
Ensure all parsed "Online" IDs are above zero or null
...
Some .osu file sources (or database sources) may be in a bad state. We want to get these ones right as they cannot be enforced by the database itself (via FKs or constraints).
2017-10-25 14:34:39 +09:00
Dean Herbert
22b3f5dd19
Merge remote-tracking branch 'upstream/master' into import-test-fixes
2017-10-23 22:03:37 +09:00
Dean Herbert
dc9c474033
Move all TestCases to Testing project
...
This allows tests to successfully retrieve rulesets, as they are referenced.
2017-10-23 19:32:02 +09:00
Dean Herbert
1a3debc91d
Ensure thread safety on shared contexts
...
Let's call this one temporary.
2017-10-23 17:56:04 +09:00
Dean Herbert
df20845fbb
Share one context per file store for performance reasons
...
There is now a CreateContext method for retrieving a stand-alone context for threaded use.
We may want to add safety against this context being disposed (or just return a fresh one if it is).
2017-10-23 16:35:35 +09:00
Dean Herbert
4a68dd88cb
Centralise BeginTransaction and disable transaction use for now
2017-10-23 14:53:13 +09:00
Dean Herbert
61c1dd3636
Don't output database logs unless DEBUG_DATABASE is specified compile-time
2017-10-22 19:46:08 +09:00
Dean Herbert
1514d8451e
Use a more elegant method of setting the connection timeout
2017-10-22 16:20:04 +09:00
Dean Herbert
29fcd210aa
Centralise transaction committing
2017-10-22 16:17:40 +09:00
Dean Herbert
39b356880e
Fix typo
2017-10-22 15:32:47 +09:00
Dean Herbert
6818ebdaff
Change the way migrations are checked for
...
This method allows switching between sqlite-net and EF builds without completely breaking. Note that DB migration still only happens in a forward direction, but this will allow switching back and forth without eventually being unable to start the game.
2017-10-22 15:27:16 +09:00
Dean Herbert
47213d2498
Rely on storage.DeleteDatabase for guaranteed database deletion
...
Relies on https://github.com/ppy/osu-framework/pull/1100 being merged for most effectiveness.
2017-10-21 00:15:02 +09:00
Dean Herbert
d32059a7ba
Ignore include-ignore warnings for now
2017-10-20 09:25:54 +09:00
Dean Herbert
ca78078436
Add more logging output
2017-10-20 08:06:07 +09:00
Dean Herbert
efaf98c5cf
Allow recovery from a very broken database
2017-10-20 00:48:27 +09:00
Dean Herbert
d9fd05a5af
Hidden cannot be null
2017-10-19 23:19:30 +09:00
Dean Herbert
8aea6068ba
Add fallback logic for the case where previous database can't be migrated
2017-10-19 21:37:09 +09:00
Dean Herbert
1672e0d6b6
Add fallback logic in case migration fails
...
Nuke it all.
2017-10-19 21:11:43 +09:00
Dean Herbert
1fbbee14e4
Allow migration from sqlite-net to EF
...
Bonus stage
2017-10-19 20:04:59 +09:00
Dean Herbert
f7d0df1743
Fix beatmap difficulty and metadata deletion
2017-10-19 17:50:46 +09:00
Dean Herbert
b02dd196f6
Don't make one factory each context
...
A factory is supposed to be re-used.
2017-10-19 17:29:39 +09:00
Dean Herbert
36c00577af
Reduce database log output
...
Also hard-disables it for uninteresting log levels, providing a further performance boost.
2017-10-19 16:35:06 +09:00
Dean Herbert
5d5ea5fb2e
Fix all remaining db structure issues
2017-10-19 14:05:11 +09:00
Dean Herbert
4e8019b313
Add some more missing indices
2017-10-17 19:59:22 +09:00
Dean Herbert
e4a066dc5f
Run cleanup tasks only on startup via manual calls
2017-10-17 19:58:33 +09:00
Dean Herbert
b9d0fb96ed
Fix cascade deletions
2017-10-17 18:26:28 +09:00
Dean Herbert
12639c6819
Use a different database name for now to avoid conflicts when switching versions
2017-10-17 17:52:20 +09:00
Dean Herbert
3e415e3269
Fix tooling failures
2017-10-17 17:52:02 +09:00
Dean Herbert
0177fcbe5f
Fix xmldoc
2017-10-17 17:08:47 +09:00
Dean Herbert
ad54ca9268
Fix TestCasePlaySongSelect
2017-10-17 16:04:54 +09:00
Dean Herbert
e487b6f82a
Standardise context retrieval
2017-10-17 15:50:42 +09:00
Dean Herbert
cd41862e3b
Add back transaction support for beatmap importing
2017-10-17 15:00:27 +09:00
Dean Herbert
fe44a28d48
Add back startup tasks runner
2017-10-17 12:46:38 +09:00
Dean Herbert
66894d11ea
Connection -> context
2017-10-17 12:46:29 +09:00
Dean Herbert
ec51314e37
Remove duplicate command
2017-10-16 16:11:34 +09:00
Dean Herbert
7049a73490
Remove ValidTypes from databased stored; explicitly expose query methods instead
2017-10-16 14:47:33 +09:00
Dean Herbert
4981630131
Fix formatting regressions
2017-10-16 13:12:51 +09:00
Dean Herbert
8a0b184dd6
Revert "Return back DatabaseBackedStore's query and populate functions"
...
This reverts commit 7cf5d63cd3
.
2017-10-16 12:59:59 +09:00
Dean Herbert
e3d31bdd10
Not implemented instead of incorrect
2017-10-16 12:59:59 +09:00
Dean Herbert
129cca0704
Tidy up context creation
2017-10-16 12:59:59 +09:00
Dean Herbert
a232033469
Fix some file headers and unused files
2017-10-16 00:54:09 +09:00
TocoToucan
7cf5d63cd3
Return back DatabaseBackedStore's query and populate functions
2017-10-15 00:40:41 +03:00
smoogipoo
167eefa397
Add logging
2017-10-14 15:16:08 +09:00
TocoToucan
ef417c6388
Small DB-related refactoring
2017-10-09 23:30:32 +03:00
TocoToucan
81b9e08fb6
Fix foreign key constraint failure
2017-10-09 00:30:52 +03:00
TocoToucan
6a4198d0d6
Initial EF Core commit
2017-10-04 22:52:12 +03:00
Dean Herbert
3b1166d1e6
Optimise file lookups and other database operations
...
FirstOrDefault when called on a TableQuery with a predicate doesn't use table indices
2017-08-01 17:37:21 +09:00
Dean Herbert
b4acdd5f90
Merge remote-tracking branch 'upstream/master' into fix-file-references
2017-08-01 11:05:38 +09:00
Dean Herbert
c060d32765
Separate out startup tasks to ensure they run after migrations
2017-08-01 10:24:00 +09:00
Dean Herbert
404497fa10
Allow a single beatmap to reference the same file multiple times
...
This fixes incorrect reference counts causing database desync.
2017-07-31 21:49:57 +09:00
Dean Herbert
bc8f8de049
Make QueryAndPopulate's filter non-optional (you basically *never* want this missing)
2017-07-31 18:41:54 +09:00
Dean Herbert
9ee59dd637
Add the ability to create migrations on a per-store level
...
Now stores store versions to the database itself.
2017-07-28 12:58:35 +09:00
Dean Herbert
3a6f3cdd8a
Add the ability to create migrations on a per-store level
...
Now stores store versions to the database itself.
2017-07-27 20:38:40 +09:00
Dean Herbert
5f53426a9a
*Database -> *Store
...
Welcome back BeatmapManager
2017-07-27 16:56:41 +09:00
Dean Herbert
96b08b8777
Simplify and document DatabaseStore API
2017-07-27 15:06:10 +09:00
Dean Herbert
898a601098
Introduce a reference counting file store
2017-07-26 20:22:02 +09:00
Dean Herbert
9e20a02c0a
Split out BeatmapDatabase into BeatmapStore
...
Hide database functionality at a lower level in preparation from eventually making it private.
2017-07-26 16:31:34 +09:00
Dean Herbert
fce580d717
Reshuffle namespaces
2017-07-26 13:22:46 +09:00
Dean Herbert
d6968ca09c
Remove FullyLoaded logic
...
Always parse storyboards for now.
Let's not optimise this until it is necessary. It was leading to weird threading problems due to the load call in Player's async load method.
2017-07-20 11:01:50 +09:00
Dean Herbert
d69470f2ae
Fix TestWorkingBeatmap broken by attempting to load storyboard
2017-07-20 09:22:39 +09:00
Dean Herbert
da92fccdb0
Merge branch 'master' into non-null-beatmap
2017-07-19 18:32:42 +09:00
Dean Herbert
d7dddec328
Set zero-difficulty values local to the dummy beatmap
2017-07-19 18:32:11 +09:00
Dean Herbert
35157ca6b8
Make DefaultBeatmap private get.
2017-07-19 18:09:59 +09:00
Dean Herbert
632d2e8ba5
Dummy beatmap has dummy ruleset
2017-07-19 15:16:48 +09:00
Dean Herbert
f168ee660c
Move dummy to BeatmapDatabase
2017-07-19 15:16:43 +09:00
Dean Herbert
6016310b09
Use a better default for difficulty values
2017-07-19 15:16:37 +09:00
Dean Herbert
f00140f0a4
Avoid crashes on attempting to import the same path twice in quick succession
2017-07-19 14:56:24 +09:00
Dean Herbert
5761eb30a0
Fix nullref error on re-importing a DeletePending beatmap
...
Callback was expecting the beatmap to be populated where it wasn't being.
2017-07-19 14:56:20 +09:00
Dan Balasescu
c13dc943f8
Merge branch 'master' into fix-track-rotation
2017-07-14 19:25:54 +10:00
Dean Herbert
2c1f3de47a
Rename 2X resources to be defaults
2017-07-13 10:27:39 +09:00
Dean Herbert
1bd3519ecb
Have beatmap return a zero-length TrackVirtual instead of null on load failure
2017-07-11 18:38:27 +09:00
DrabWeb
b448603d6c
CI fixes.
2017-07-11 01:42:51 -03:00
DrabWeb
69b290519f
Better BeatmapSetOnlineInfo comments.
2017-07-11 00:28:25 -03:00
DrabWeb
84701846ec
Merge https://github.com/ppy/osu into osu-direct-search
2017-07-11 00:26:49 -03:00
John Neijzen
d9a9616125
EOF remove blank spaces
2017-06-08 14:56:03 +08:00
DrabWeb
ddc4d45ae8
Unused usings
2017-06-07 11:39:04 -03:00
DrabWeb
add08e65ff
Result counts displaying
2017-06-07 11:30:52 -03:00
DrabWeb
8745948a01
Basic searching in osu!direct, move BeatmapSetOnlineInfo covers into their own class
2017-05-28 02:26:25 -03:00
DrabWeb
ab32e962ca
Make BeatmapOnlineInfo and BeatmapSetOnlineInfo separate classes, -OnlineWorkingBeatmap
2017-05-28 00:37:55 -03:00
DrabWeb
a25c504965
CI fixes
2017-05-24 03:08:48 -03:00
DrabWeb
ba2627d4e2
Merge branch 'osu-direct' of https://github.com/DrabWeb/osu into osu-direct
2017-05-24 02:40:00 -03:00
DrabWeb
e59c1879a2
Remove tabs
2017-05-24 02:38:55 -03:00
DrabWeb
4490596f5f
Keep one object per file
2017-05-24 02:37:27 -03:00
Dean Herbert
4ee11764b8
Merge branch 'master' into osu-direct
2017-05-24 12:16:34 +09:00
Dean Herbert
fe7ac20e29
Read menu music from osz resource
2017-05-23 16:38:43 +09:00
Dean Herbert
0b987be600
Merge branch 'master' into osu-direct
2017-05-20 16:17:59 +09:00
DrabWeb
c981a4a511
Formatting
2017-05-19 19:50:45 -03:00
DrabWeb
0a90965a5b
CI formatting
2017-05-19 19:22:42 -03:00
DrabWeb
7a60aa614d
Reword comment
2017-05-19 19:05:54 -03:00
DrabWeb
e1c4c36122
+BeatmapOnlineInfo, +OnlineWorkingBeatmap, minor cleanups, panel beatmap backgrounds
2017-05-19 15:43:18 -03:00
Dean Herbert
c51d640241
Add support for searching beatmap author at song select
...
Resolves #792
2017-05-19 13:13:27 +09:00
Dean Herbert
f730769186
Rewrite to make better
2017-05-15 12:54:56 +09:00
Dean Herbert
a9b3f74218
Fix ruleset not always getting populated in a WorkingBeatmap
2017-05-12 20:05:44 +09:00
Dean Herbert
a2f6d8a3e6
Fix broken test cases, remove some recursive lookup methods.
2017-05-11 19:38:28 +09:00
Dean Herbert
70ef503403
Merge branch 'master' into metadata
2017-05-11 12:23:00 +09:00
Huo Yaoyuan
4c26a02e99
Remove unnecessary arguments in WorkingBeatmap's constructor.
2017-05-08 16:42:53 +08:00
Huo Yaoyuan
4f8549f220
Standardise usages of exceptions.
2017-05-07 00:38:17 +08:00
Huo Yaoyuan
767cfaaac3
Access database recursively.
2017-05-06 15:37:53 +08:00
Huo Yaoyuan
146d57953d
Use metadata field of WorkingBeatmap.
2017-05-06 14:57:11 +08:00
Huo Yaoyuan
4f49151984
Make metadata a member of WorkingBeatmap.
2017-05-06 14:52:28 +08:00
Dean Herbert
a993790a66
Ensure all searchable terms are non-null non-empty.
2017-05-02 17:54:07 +09:00
Dean Herbert
6074cb5979
Make playlist filtering work.
...
Also standardises searchable terms in beatmap metadata.
2017-05-02 10:45:55 +09:00
Dean Herbert
28375ed1fc
Allow transfer of previously loaded background between WorkingBeatmaps
2017-04-28 15:03:07 +09:00
Dean Herbert
e1a2f1bc7a
Add beatmap metrics lookup.
2017-04-24 19:17:11 +09:00
smoogipooo
61090d918c
Temporary for taiko lagging on auto replays due to inImportantSection.
...
Note that this isn't a full "as intended" fix, because the full fix is quite big. I'll be saving it for a separate branch/pull-req.
2017-04-20 15:26:42 +09:00
Dean Herbert
873599b359
Fix conversion regression.
2017-04-20 11:36:50 +09:00
Dean Herbert
a47870b376
Apply Ruleset to Scores. Reduce complexity of score creation.
2017-04-20 11:16:08 +09:00
Dean Herbert
3e65cab9b7
Move replay creation logic to ScoreDatabase.
2017-04-20 10:25:07 +09:00
Dean Herbert
3b95fbab7d
Add score statistic tracking (osu!).
2017-04-19 16:29:27 +09:00
Dean Herbert
fbd26a1d5e
Mode -> Ruleset.
2017-04-18 16:05:58 +09:00
Dean Herbert
5939ba9143
Fix ruleset not always being initialised correctly.
2017-04-18 10:55:33 +09:00
Dean Herbert
f2174054ea
Fix song select.
2017-04-18 10:04:32 +09:00
Dean Herbert
d3c1520a2d
Fix beatmaps not getting the correct ruleset on import.
2017-04-18 09:47:29 +09:00
Dean Herbert
2734983564
Add unique constraints on RulesetInfo table to ensure things stay sane.
2017-04-18 09:47:16 +09:00
Dean Herbert
af13f97435
Fix regressions and test cases.
2017-04-17 19:44:03 +09:00
Dean Herbert
db6556a0f9
Index DeletePending for better performance.
2017-04-17 17:44:02 +09:00
Dean Herbert
a4e2f34ee7
Make a RulesetDatabase.
2017-04-17 17:43:48 +09:00
Dean Herbert
83b083ce64
Move SQLite connections out of database classes; make abstract Database.
2017-04-17 14:37:52 +09:00
smoogipooo
4a149c4ab8
Better default values + don't set Mode from outside.
2017-04-15 06:14:31 +09:00
smoogipooo
0a1376c2db
Remove PlayMode game-wide.
2017-04-15 05:22:41 +09:00
smoogipooo
a89af273be
Make BeatmapInfo expose Ruleset instead of PlayMode.
2017-04-15 05:01:36 +09:00
smoogipooo
59bfc7abad
Move statics to RulesetCollection to avoid conflicts later on.
2017-04-15 04:53:37 +09:00
Dean Herbert
2c3fa30386
Metric -> Metrics.
2017-04-12 21:09:39 +09:00
Dean Herbert
00cd2c8372
Better comments.
2017-04-12 21:08:28 +09:00
Jorolf
50b6bcd574
Merge branch 'master' into details
2017-04-11 19:06:58 +02:00
Jorolf
d4e5f55091
the power of linq
2017-04-11 18:43:48 +02:00
Jorolf
fb5952186c
changes and fixes
2017-04-11 14:02:56 +02:00
Dean Herbert
24fea2809b
Map beatmap md5 from online response to BeatmapInfo.
2017-04-11 13:44:55 +09:00
Jorolf
24b4b3ad7d
update to everything
2017-04-10 16:42:23 +02:00
Huo Yaoyuan
411988f038
Remove all trailing whitespaces in this repo.
2017-04-06 16:21:18 +08:00
Huo Yaoyuan
9b1e010dcc
Fix filename mismatch.
2017-04-06 16:05:41 +08:00
smoogipooo
0107772737
Fix using.
2017-04-06 16:25:46 +09:00
Dan Balasescu
6fc1384927
Merge branch 'master' into taiko-fixes
2017-04-06 16:23:22 +09:00
Dean Herbert
4783d17d94
Merge branch 'master' into better-hitsounds
2017-04-06 16:00:56 +09:00
smoogipooo
cec8bca78a
Implement IJsonSerializable, BeatmapInfo IJsonSerializable.
2017-04-06 15:54:50 +09:00
Dean Herbert
18ff8efd46
Mark TODO for BeatmapVersion.
2017-04-06 13:15:33 +09:00
Dean Herbert
f193af2a2a
Add better defaults for BaseDifficulty.
2017-04-06 13:15:21 +09:00
smoogipooo
eb82a4c090
Back to using SampleInfo + fix taiko beatmap conversion.
2017-04-06 11:41:16 +09:00
smoogipooo
4b424263ce
Fully parse control points.
2017-04-04 13:13:27 +09:00
smoogipooo
19b5555ef2
Slightly clean up archive readers + decoders. Read beatmap version into BeatmapInfo.
2017-04-03 20:26:46 +09:00
Dean Herbert
fa7c72a099
Refactor ReplayInputHandler creation for more flexibility.
2017-03-31 15:59:53 +09:00
smoogipooo
136665e52e
Add virtual method to instantiate legacy replays.
2017-03-24 14:28:17 +09:00
smoogipooo
2074812f46
Move ScoreProcessor and Score to Scoring/.
2017-03-24 09:51:52 +09:00
Dean Herbert
54e1b24fe9
Enforce readonly private members where possible.
2017-03-23 13:50:08 +09:00
Dean Herbert
859ee5d316
Tidy up DatabaseWorkingBeatmap.
2017-03-23 10:07:26 +09:00
Drew DeVault
2e1f596b2a
Move DatabaseWorkingBeatmap out of partial class
2017-03-22 06:50:48 -04:00
Drew DeVault
2b1d31e69c
Address linting issues
2017-03-22 06:25:49 -04:00
Drew DeVault
267238dc27
Simplify derived classes of WorkingBeatmap
2017-03-22 06:15:32 -04:00
Drew DeVault
cc2b4c5c5b
Refactor WorkingBeatmap
...
Gets ArchiveReader out of WorkingBeatmap and delegates extracting stuff
from it to subclasses. Should enable us to make an OnlineWorkingBeatmap
or so.
2017-03-22 05:57:08 -04:00
Dan Balasescu
cd30958086
Merge branch 'master' into song-select-loading-reoptimisation
2017-03-18 01:25:22 +09:00
Dean Herbert
3401759665
Don't batch imports for now.
2017-03-17 18:57:24 +09:00
Dean Herbert
cd98af29c4
Only calculate difficulties on import for now.
2017-03-17 11:53:13 +09:00
smoogipooo
9a4af8f194
GetScore -> CreateScore.
2017-03-17 02:03:12 +09:00
smoogipooo
e0a8c3b1e5
Rename BaseDifficulty -> Difficulty / BeatmapDifficulty.
2017-03-16 23:18:02 +09:00
smoogipooo
28e006eeb9
Move MapDifficultyRange into BaseDifficulty.
2017-03-16 23:17:27 +09:00
Dean Herbert
271dddc9a7
Merge branch 'master' into generic_scoreprocessor
2017-03-16 23:04:19 +09:00
Dean Herbert
4d84bf7350
Change difficulty sort to be based on MaxStarDifficulty.
2017-03-16 13:59:23 +09:00
smoogipooo
5cafec3b6a
Add back CreateScoreProcessor to Ruleset to instantiate a non-generic ScoreProcessor for ScoreDatabase.
2017-03-16 13:13:45 +09:00
smoogipooo
82033faaab
Warning/error fixing.
2017-03-16 12:57:50 +09:00
smoogipooo
c82ae011fb
Make ScoreProcessors take generic judgements.
2017-03-16 12:45:23 +09:00
Dean Herbert
ba10c3a8db
Revert "Merge pull request #441 from tacchinotacchi/archive-reader"
...
This reverts commit 6f20473e65
, reversing
changes made to c76a495d3d
.
2017-03-14 11:46:34 +09:00
Alex Amadori
c84a9d56f5
Fix namespace, comply with naming rules
2017-03-13 11:36:21 +01:00
Alex Amadori
caa6e9c82b
General improvements
2017-03-13 11:29:24 +01:00
Alex Amadori
971d8eb7c5
Merge remote-tracking branch 'upstream/master' into archive-reader
2017-03-13 10:56:31 +01:00
smoogipooo
3480dca0ad
Remove PlayMode enum requirement. Clean things up a lot.
2017-03-12 14:32:50 +09:00
Alex Amadori
c60353faf7
Merge branch 'archive-reader' of https://github.com/tacchinotacchi/osu into archive-reader
2017-03-09 17:07:37 +01:00
Alex Amadori
7374839923
Merge remote-tracking branch 'upstream/master' into archive-reader
2017-03-09 17:07:00 +01:00
Dean Herbert
d7497330b2
Reduce warning/suggestion count to zero.
2017-03-09 15:52:40 +09:00
Dean Herbert
0976e205d8
Remove redundant parentheses.
2017-03-09 14:00:17 +09:00
Alex Amadori
9f40a888ec
Update BeatmapArchiveReader's test
2017-03-08 21:55:38 +01:00
Alex Amadori
309019aab3
Merge remote tracking branch 'upstream/master' into archive-reader
2017-03-07 08:41:44 +01:00
Dean Herbert
5cbcf7a20a
Fix error-level inspections.
2017-03-07 14:31:54 +09:00
Dean Herbert
4430255ec4
Merge remote-tracking branch 'upstream/master' into replay
...
# Conflicts:
# osu.Desktop.VisualTests/Tests/TestCasePlayer.cs
# osu.Desktop/OsuGameDesktop.cs
# osu.Game.Modes.Osu/Objects/Drawables/DrawableHitCircle.cs
# osu.Game.Modes.Osu/Objects/Drawables/DrawableSlider.cs
# osu.Game/Database/BeatmapDatabase.cs
# osu.Game/Graphics/Cursor/OsuCursorContainer.cs
# osu.Game/IPC/BeatmapImporter.cs
# osu.Game/Modes/Mod.cs
# osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs
# osu.Game/Modes/UI/Playfield.cs
# osu.Game/Screens/Play/Player.cs
# osu.Game/Screens/Play/PlayerInputManager.cs
2017-03-07 13:50:08 +09:00
Dean Herbert
0cad5d7d41
Fix most warnings.
2017-03-07 13:05:57 +09:00
Alex Amadori
fd53d10264
Refactor ArchiveReader for extensibility
2017-03-06 23:56:08 +01:00
Dean Herbert
95e2e2b027
Replay loading via drag-drop huzzah!
2017-03-04 19:02:43 +09:00
Dean Herbert
aa9d85624d
Change IPC to make sense.
2017-03-04 18:51:16 +09:00
Dean Herbert
398b1fcf03
Add comment about .ID == 0 check.
2017-03-03 20:51:07 +09:00
Mikal Stodal
c88c6c4c62
More summaries
2017-03-02 15:37:45 +01:00
Mikal Stodal
dfa21444b4
Ensure correct exception logged
2017-03-02 14:10:32 +01:00
Mikal Stodal
2498305174
Merged branch master into remove-source-on-import
2017-03-02 13:39:22 +01:00
Mikal Stodal
47162a3e91
Update summary and commentary
2017-03-02 13:39:02 +01:00
Mikal Stodal
6661195e92
Only add set if ID is 0
2017-03-02 13:36:01 +01:00
Dean Herbert
68a359698d
Fix potential nullref caused by test data.
2017-03-02 18:35:24 +09:00
Mikal Stodal
418ae24fea
Document private method getBeatmapSet(path)
2017-03-01 17:57:57 +01:00
Mikal Stodal
1e901a1604
Only set StoryBoardFile once
2017-03-01 17:08:12 +01:00
Mikal Stodal
eff66a1da6
Only delete on successful import.
2017-02-28 14:46:16 +01:00
Mikal Stodal
d54a75a5c5
Delete file after importing BeatmapSet w/error handling,
...
also changed batch-commit of multiple sets to database.
2017-02-28 14:35:42 +01:00
Dean Herbert
4a4f1f4d82
Actually delete all related database entries, not just the set.
2017-02-27 18:27:38 +09:00
Dean Herbert
27d31d1d30
Merge remote-tracking branch 'upstream/master' into better-container
2017-02-26 11:23:06 +09:00
Thomas Müller
1585ae842a
Update framework
2017-02-26 11:22:58 +09:00
Dean Herbert
7a60a5e499
Lock the BeatmapDatabase's connection during imports.
...
This should avoid any potential issues with intertwined transactions on the same connection while still allowing higher throughput when importing.
2017-02-25 10:39:13 +09:00
Thomas Müller
d150eb4450
Merge branch 'master' into better-star-counter
2017-02-24 19:37:04 +01:00
Thomas Müller
f7d985fe18
Fix and refactor star difficulty calculation boilerplate
...
Moves star difficulty calculation entry-point to Beatmap, and sets
star difficulty at the correct place for song select to display.
2017-02-24 19:36:17 +01:00
Dean Herbert
c178493877
Add support for undeleting beatmaps if they are imported during an undeleted state.
2017-02-24 18:13:38 +09:00
Dean Herbert
d24403e58e
Remove unused using statement.
2017-02-24 17:20:00 +09:00
Dean Herbert
958bf54c31
Add safe deletion support.
2017-02-24 17:08:13 +09:00
Dean Herbert
6c3bda18b6
Add beatmap deletion support.
...
Note that this is a very naive approach and will result in file access exceptions. This will be fixed in a further commit.
2017-02-24 14:37:54 +09:00
Dean Herbert
3a89348413
Centralise access to WorkingBeatmaps.
...
They can now only be instantiated from BeatmapDatabase and are abstract (to avoid misuse).
2017-02-24 13:43:21 +09:00
Thomas Müller
a5dfa7ab06
Remove unnecessary using statements
2017-02-23 21:38:10 +01:00
Dean Herbert
da2bfe6d3c
Framework updates.
2017-02-23 16:42:12 +09:00
Thomas Müller
417f146386
Add difficulty calculation
...
Adds base classes for difficulty calculations, hooks them up with
carousel container, and adds a port of the osu difficulty calculator.
2017-02-19 17:41:51 +01:00
Dean Herbert
11643d2e09
Remove unnecessary methods and local variables.
2017-02-13 18:30:51 +09:00
Thomas Müller
e3f35cd66e
Merge branch 'master' into osb_loading
2017-02-12 12:26:25 +01:00
Dean Herbert
870aa2750f
Don't attempt to import command line arguments as beatmaps.
2017-02-12 14:53:33 +09:00
Damnae
a504c73f33
Load beatmap data from an optional osb file.
2017-02-09 15:19:09 +01:00
Dean Herbert
50bd80cb0c
Update and standardise license headers.
2017-02-07 14:27:41 +09:00
Dean Herbert
756fd78a88
Fix incorrect line endings.
2017-02-07 13:52:19 +09:00
Dean Herbert
0272c4b559
Add StarDifficulty property and correct colouring of difficulty icons.
2017-01-30 15:26:28 +09:00
Dean Herbert
56fe69852d
Change beatmap database reset logic to only run a maximum of once.
2017-01-23 18:13:06 +09:00
Dean Herbert
ef8347fe53
Reset the beatmap database when it can't be read, rather than hard failing.
2017-01-23 13:02:03 +09:00
柯十六夜
acfbf2e32e
Add prefix Online to BeatmapID and BeatmapSetID
2017-01-09 21:05:01 +08:00
柯十六夜
ef11c3f389
Add default Beatmap ID
2016-12-21 14:47:56 +08:00
柯十六夜
02f6e46105
Add support for v9 beatmaps
2016-12-20 23:56:49 +08:00
Dean Herbert
f356640cb7
Add missing licence headers.
2016-12-06 19:07:15 +09:00
Dean Herbert
0c841cffdd
Change GetChildren recursive default to false (should be more common).
2016-11-23 15:34:32 +09:00
Dean Herbert
d71550d22a
Don't do a recursive fill by default, we don't need it.
2016-11-22 22:07:28 +09:00
Dean Herbert
2ba365657e
Tidy up some linq.
2016-11-22 17:21:42 +09:00
Dean Herbert
06f4f93918
Move play modes to Modes namespace.
2016-11-14 18:03:20 +09:00
Dean Herbert
0f4538f69f
Rename GameModes namespace to Screens.
2016-11-14 17:23:33 +09:00
Huo Yaoyuan
ef5968e243
More robust metadata handling.
2016-11-07 23:12:49 +08:00
Huo Yaoyuan
c59cad2478
AudioEquals method for BeatmapInfo.
2016-11-07 21:52:23 +08:00
Dean Herbert
a11d534067
Add beatmap backgrounds.
2016-11-05 20:00:14 +09:00
Dean Herbert
8fe63689a4
Fix thread safety issue when accessing files in beatmap (zip) files.
2016-11-05 18:19:01 +09:00
Dean Herbert
b86f308af6
Add async workflow.
2016-11-01 23:24:14 +09:00
Dean Herbert
10ef34b805
Lazy parse beatmap; Don't reload audio track if it hasn't changed.
2016-10-28 20:24:14 +09:00
Dean Herbert
74f1a9622f
Add initial game-wide beatmap flow.
2016-10-28 19:55:48 +09:00
Dean Herbert
feccb7286c
Add the concept of a "WorkingBeatmap" and make player load beatmaps and audio from SongSelect.
2016-10-28 14:14:45 +09:00
Dean Herbert
33ef55df88
Allow BeatmapDatabase to be constructed without a host.
2016-10-27 17:34:50 +09:00
Dean Herbert
f16cc430f8
Stop using memory database. Load sample data local to TestCase.
...
Also makes the connection private.
2016-10-27 17:08:53 +09:00