Files
AIPS/dotnet/AipsRT/Program.cs
2026-03-08 16:11:23 +01:00

62 lines
1.5 KiB
C#

using AipsCore.Application.Common.Message.ErrorMessage;
using AipsCore.Infrastructure.DI;
using AipsRT.Hubs;
using AipsRT.Model.Memberships;
using AipsRT.Model.Whiteboard;
using AipsRT.Services;
using AipsRT.Services.Interfaces;
using DotNetEnv;
using Microsoft.AspNetCore.SignalR;
if (File.Exists("../../.env"))
{
Env.Load("../../.env");
}
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddEnvironmentVariables();
builder.Services.AddSignalR();
builder.Services.AddAips(builder.Configuration);
builder.Services.AddAipsMessageHandlers();
builder.Services.AddSingleton<IErrorMessageHandleStrategy, RtErrorHandleStrategy>();
builder.Services.AddHostedService<ErrorSubscriberBackgroundService>();
builder.Services.AddTransient<MembershipService>();
builder.Services.AddScoped<GetWhiteboardService>();
builder.Services.AddSingleton<WhiteboardManager>();
builder.Services.AddSingleton<IMessagingService, MessagingService>();
builder.Services.AddCors(options =>
{
options.AddPolicy("frontend",
policy =>
{
policy
.WithOrigins("http://localhost:5173")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
});
});
var app = builder.Build();
app.MapGet("/test", (IHubContext<TestHub> hubContext) =>
{
hubContext.Clients.All.SendAsync("ReceiveText", "Ide gas! ");
});
app.UseCors("frontend");
app.UseAuthentication();
app.UseAuthorization();
app.MapHub<TestHub>("/hubs/test");
app.MapHub<WhiteboardHub>("/hubs/whiteboard");
app.Run();