using System.Reflection; using CollabSL.EndPoints.Services; using GB5Shared.DaprCache; using GB5Shared.EventLogPublish; using GB5Shared.Hosting; using CollabSL.EndPoints.Hubs; namespace CollabSL; public class CollabModule : IModule { public string DisplayName => "CollabSpace"; public void Register(IServiceCollection services, IConfiguration configuration) { services.AddSignalR(options => { options.EnableDetailedErrors = true; options.KeepAliveInterval = TimeSpan.FromSeconds(15); options.ClientTimeoutInterval = TimeSpan.FromSeconds(60); options.MaximumReceiveMessageSize = 32 * 1024; }); services.AddHostedService(); services.AddScoped(); services.AddScoped(); var collabBLLAssembly = Assembly.Load("CollabBLL"); var collabDALAssembly = Assembly.Load("CollabDAL"); services.Scan(scan => scan .FromAssemblies(collabBLLAssembly, collabDALAssembly) .AddClasses(c => c.Where(t => !t.IsAbstract && !t.IsInterface && (t.Namespace == null || !t.Namespace.Contains(".DTO")))) .AsImplementedInterfaces() .WithScopedLifetime()); } public void MapEndpoints(WebApplication app) { app.MapHub("/hubs/collab"); } }