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