using Immense.RemoteControl.Server.Filters;
using Immense.RemoteControl.Server.Services;
using Immense.RemoteControl.Shared.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Immense.RemoteControl.Server.Extensions;
public static class ServiceCollectionExtensions
{
///
/// Adds remote control services to an ASP.NET Core web app. Remember to call
///
/// after the WebApplication has been built.
///
///
/// Provides methods for adding required service implementations.
///
public static IServiceCollection AddRemoteControlServer(
this IServiceCollection services,
Action configure)
{
var builder = new RemoteControlServerBuilder(services);
configure(builder);
builder.Validate();
services
.AddSignalR()
.AddMessagePackProtocol();
services.AddHostedService();
services.AddHostedService();
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
services.AddScoped();
return services;
}
}