Files
FileTime2/src/Tools/FileTime.Tools.Compression/Startup.cs

34 lines
1.5 KiB
C#

using FileTime.App.Core.Services;
using FileTime.Core.ContentAccess;
using FileTime.Tools.Compression.Compress;
using FileTime.Tools.Compression.ContentProvider;
using FileTime.Tools.Compression.Decompress;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace FileTime.Tools.Compression;
public class StartupHandler : IStartupHandler
{
public StartupHandler(IIdentifiableUserCommandService identifiableUserCommandService)
{
identifiableUserCommandService.AddIdentifiableUserCommand(CompressUserCommand.Instance);
identifiableUserCommandService.AddIdentifiableUserCommand(DecompressUserCommand.Instance);
}
public Task InitAsync() => Task.CompletedTask;
}
public static class Startup
{
public static IServiceCollection AddCompression(this IServiceCollection services)
{
services.AddSingleton<IStartupHandler, StartupHandler>();
services.AddSingleton<CompressCommandFactory>();
services.AddSingleton<DecompressCommandFactory>();
services.AddSingleton<IUserCommandHandler, CompressionUserCommandHandler>();
services.TryAddSingleton<ICompressedContentProviderFactory, CompressedContentProviderFactory>();
services.AddSingleton<ISubContentProvider, CompressedSubContentProvider>();
services.TryAddSingleton<IContentReaderFactory<CompressedContentProvider>, CompressedContentReaderFactory>();
return services;
}
}