LANCommander/LANCommander.Server.Services/Extensions/IServiceCollectionExtensions.cs
Pat Hartl 120e14d40c Add Tools section to server app
Allows users to upload additional tools and tie them to games. This can be useful for software like map editors, trainers, etc.
2026-02-08 02:24:53 -06:00

83 lines
No EOL
3.5 KiB
C#

using LANCommander.SDK;
using LANCommander.SDK.Abstractions;
using LANCommander.SDK.Interceptors;
using LANCommander.SDK.Models;
using LANCommander.SDK.PowerShell;
using LANCommander.SDK.Services;
using LANCommander.Server.Services.Abstractions;
using LANCommander.Server.Services.Factories;
using LANCommander.Server.Services.Interceptors;
using LANCommander.Server.Services.MediaGrabbers;
using LANCommander.Server.Services.PowerShell;
using LANCommander.Server.Services.Providers;
using LANCommander.Server.Services.ServerEngines;
using Microsoft.Extensions.DependencyInjection;
namespace LANCommander.Server.Services.Extensions;
public static class IServiceCollectionExtensions
{
public static IServiceCollection AddLANCommanderServer(this IServiceCollection services)
{
services.AddScoped<IGitHubService, GitHubService>();
services.AddScoped<IdentityContextFactory>();
services.AddScoped<AuthenticationService>();
services.AddScoped<ArchiveService>();
services.AddScoped<IArchiveClient, ArchiveService>();
services.AddScoped<StorageLocationService>();
services.AddScoped<ActionService>();
services.AddScoped<CategoryService>();
services.AddScoped<CollectionService>();
services.AddScoped<GameService>();
services.AddScoped<LibraryService>();
services.AddScoped<ScriptService>();
services.AddScoped<GenreService>();
services.AddScoped<PlatformService>();
services.AddScoped<KeyService>();
services.AddScoped<TagService>();
services.AddScoped<EngineService>();
services.AddScoped<CompanyService>();
services.AddScoped<MultiplayerModeService>();
services.AddScoped<IGDBService>();
services.AddScoped<ServerService>();
services.AddScoped<ServerHttpPathService>();
services.AddScoped<ServerConsoleService>();
services.AddScoped<GameSaveService>();
services.AddScoped<SavePathService>();
services.AddScoped<PlaySessionService>();
services.AddScoped<MediaService>();
services.AddScoped<RedistributableService>();
services.AddScoped<ToolService>();
services.AddScoped<IMediaGrabberService, SteamGridDBMediaGrabber>();
services.AddScoped<UpdateService>();
services.AddScoped<IssueService>();
services.AddScoped<PageService>();
services.AddScoped<UserService>();
services.AddScoped<RoleService>();
services.AddScoped<UserCustomFieldService>();
services.AddScoped<GameCustomFieldService>();
services.AddScoped<ChatService>();
services.AddScoped<ChatMessageService>();
services.AddScoped<ChatThreadService>();
services.AddScoped<ChatThreadReadStatusService>();
services.AddTransient<SetupService>();
// Register server engines
services.AddSingleton<IServerEngine, LocalServerEngine>();
services.AddSingleton<DockerServerEngine>();
services.AddSingleton<IServerEngine>(provider => provider.GetService<DockerServerEngine>());
services.AddSingleton<ScriptDebugger>();
services.AddSingleton<IScriptDebugger>(sp =>
sp.GetRequiredService<ScriptDebugger>());
services.AddSingleton<IPXRelayService>();
services.AddSingleton<IBeaconMessageInterceptor, BeaconMessageInterceptor>();
services.AddAutoMapper(cfg => { }, typeof(MappingProfile));
services.AddFusionCache();
return services;
}
}