Commit graph

300 commits

Author SHA1 Message Date
Pat Hartl
17fa802c19 Implementation of script debugger component with RPC via SignalR 2025-12-10 20:55:38 -06:00
Pat Hartl
20731f355a Fix certain taxonomies (tag, genre, platform) being removed from game on save
Fixes the action, custom field, multiplayer mode, and save path editors from clearing out taxonomies when saving. Also passes the Game/Server/Redistributable ID as a cascading parameter.
2025-12-08 00:51:32 -06:00
Pat Hartl
1cdbde922f Add FileExistsAsync to differentiate from archive entity ExistsAsync 2025-12-03 23:41:51 -06:00
Pat Hartl
22fc2bb9e7 Fix ExistsAsync when media record doesn't exist 2025-12-03 19:33:27 -06:00
Pat Hartl
ce38a0f252 Fix sync relationships not updating the entity 2025-12-03 19:33:01 -06:00
Pat Hartl
5b444f91e7 Make SyncRelationCollectionAsync only match existing records 2025-12-03 18:56:35 -06:00
Pat Hartl
cf27436a71 Fix media importing when existing entity/file doesn't exist 2025-12-03 18:31:03 -06:00
Pat Hartl
54400fdb10 Refactor server importers
Refactors server importers to better handle dependencies on other data in the queue.
2025-12-03 02:22:37 -06:00
Pat Hartl
6dfc0906ac Refactor launcher library importing, manifests
Switched the library importing in the launcher to work based on a queue. As a new game is added to the queue, it should find any related data and also add it to the queue. This should result in an easier to maintain importer while reducing the load on the launcher's DAL. This may result in more RAM usage while importing. Local manifests have also been refactored to match manifests in import/export LCX files, removing the old manifest format. This is a large breaking change that will probably break existing game installations. A migration will probably have to be created.
2025-11-29 18:24:27 -06:00
Pat Hartl
e6c12b4809 Refactor script debugging
Instead of providing delegates to a ScriptClient singleton, script execution now relies on dependency injection for debugging. This can be handled by registering an implementation of IScriptDebugger. Multiple script debuggers are supported. These changes required the creation of a PowerShellScriptFactory to handle DI of the service provider to the script.

In the case of LANCommander, "debugging" scripts really just gives an opportunity for the application to break after a script's execution and provide a poor-man's pty. This could be expanded upon in the future to hook directly into PowerShell's debugging functionality, but would require a substantial refactor to script execution.
2025-11-26 01:09:52 -06:00
Pat Hartl
55ad5ddb96 Use DefaultAsync for default storage location 2025-11-21 13:15:57 -06:00
Pat Hartl
7374c904a1 Fix mapping of primary action on export 2025-11-21 13:15:35 -06:00
Pat Hartl
47d78f66d9 Add basic routes for issues, move to minimal API, resolve using user ID 2025-11-21 00:25:59 -06:00
Pat Hartl
cf16d7619f Move game endpoints to minimal API, fix archive upload compressed size calculation 2025-11-20 22:04:20 -06:00
Pat Hartl
256b46e823 Fix storage of authentication token 2025-11-19 00:36:03 -06:00
Pat Hartl
f84a373d65 Correctly register ArchiveService as IArchiveClient implementation 2025-11-17 22:09:19 -06:00
Pat Hartl
772dd03537 Rename to ArchiveService 2025-11-17 22:09:03 -06:00
Pat Hartl
3a5b3f0897 Configure database on startup 2025-11-17 20:31:11 -06:00
Pat Hartl
add770b227 Refactor Settings
Settings for the server are now combined with the settings from the SDK. This introduces a large breaking change and a migration should be created. This refactor utilizes .NET Configuration and the Options pattern. This will allow for the overriding of any setting using envionment variables. It also means that Settings.yml can be used to override any .NET configuration. A SettingsProvider implementation was created, and any updating of settings was changed from SettingsService.SaveSettings() to SettingsProvider.Update(s => { ... })
2025-11-16 12:31:25 -06:00
Pat Hartl
7efee54550 Fix check to see if user is already participant 2025-11-14 00:16:11 -06:00
Pat Hartl
cd0f33ccf3 Add log 2025-11-13 18:17:45 -06:00
Pat Hartl
4535d9891a Add chat read status, badges to avatars, avatars for groups 2025-11-12 18:26:25 -06:00
Pat Hartl
37eebfde9c Add hub method to get stripped list of users 2025-11-10 18:06:55 -06:00
Pat Hartl
9e754daa40 Add mapping for chat thread 2025-11-09 19:44:54 -06:00
Pat Hartl
3a87abe3da Remove null check 2025-11-09 19:23:54 -06:00
Pat Hartl
707332b68e Add null checks for participants and user 2025-11-05 23:42:36 -06:00
Pat Hartl
a92c7be6ec Enhance chat list
- Added SafeAvatar component for retrieving user avatars with fallback to initials
- Added a title/name for chat threads
- Moved chat input to a separate component
2025-11-03 23:27:05 -06:00
Pat Hartl
191827ed6d Remove manual tracking of user connections, populate participants in database
Removes the manual tracking of user connections by connection ID in the RPC hub. SignalR automatically links connections to connected users and provides Client.User[s] methods.

Also fixes message sending to participants and tracking of participants per thread.
2025-10-28 22:19:48 -05:00
Pat Hartl
2076c6e93b Allow different cookie policies for HTTP/S 2025-10-21 21:28:52 -05:00
Pat Hartl
0812387c55 Switch OIDC to use configuration endpoints 2025-10-12 20:54:56 -05:00
Pat Hartl
4968481460 Standardize YAML serializers 2025-10-06 19:23:49 -05:00
Pat Hartl
ad034918a4 Register client, rename settings file 2025-10-05 21:31:16 -05:00
Pat Hartl
b1e5034ed9 Remove projection overloads 2025-10-05 19:41:24 -05:00
Pat Hartl
5cab1f3618 Remove old SettingsService, replace with Options pattern 2025-09-29 19:49:09 -05:00
Pat Hartl
aaf65fcf09 Runnable launcher using new client 2025-09-27 16:39:54 -05:00
Pat Hartl
7f99fb481c Use Options pattern, 2025-09-26 00:51:02 -05:00
Pat Hartl
14208b34a3 Serve client settings via new endpoint 2025-09-26 00:49:34 -05:00
Pat Hartl
d24f72beed Merge branch 'main' into refactor/sdk-dependency-injection
# Conflicts:
#	LANCommander.SDK/LANCommander.SDK.csproj
2025-09-25 19:38:21 -05:00
Pat Hartl
1daeb5fc10 Migrate to new AutoMapper DI 2025-09-25 19:12:49 -05:00
Pat Hartl
e0ead4ee72 Remove mapping of IGDB categories to game type
Fixes #342
2025-09-25 19:12:31 -05:00
Pat Hartl
6dd4475e49 Centrally manage packages 2025-09-25 19:11:37 -05:00
Pat Hartl
d875377f15 Rename SDK services -> clients, implement new configuration, use dependency injection for clients 2025-09-24 20:58:23 -05:00
Pat Hartl
c477ef1877 UI to edit media thumbnail sizes 2025-09-15 19:19:52 -05:00
Pat Hartl
cd768486ec Move thumbnail sizing to settings 2025-09-10 02:35:22 -05:00
Pat Hartl
0eb233ac30 Move file manager component to UI project 2025-09-06 12:57:15 -05:00
Pat Hartl
188926e37b Add new RPC hub, migrate existing SignalR messaging to strongly typed RPC, add chat data migrations 2025-08-28 19:57:23 -05:00
Pat Hartl
e8388f7918 Add way to start thread 2025-08-20 20:54:09 -05:00
Pat Hartl
fd3fbf4a75 Initial backend implementation for chat 2025-08-19 03:08:30 -05:00
Pat Hartl
59cd872c5f Used cached credentials for SteamCMD 2025-08-15 02:15:40 -05:00
Pat Hartl
086c41dcb8 Set created by based on ID 2025-08-15 02:15:20 -05:00