Files
EnvelopeGenerator/EnvelopeGenerator.ReceiverUI/EnvelopeGenerator.ReceiverUI.Client/Program.cs
2026-03-19 12:35:23 +01:00

27 lines
1.1 KiB
C#

using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using EnvelopeGenerator.ReceiverUI.Client.Auth;
using EnvelopeGenerator.ReceiverUI.Client.Services;
using EnvelopeGenerator.ReceiverUI.Client.State;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
// HttpClient: BaseAddress zeigt auf den ReceiverUI-Server (gleiche Domain)
// Von dort werden alle /api/* Calls via YARP an die echte API weitergeleitet
builder.Services.AddScoped(sp =>
new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// Auth: Blazor fragt über diesen Provider "Ist der Nutzer eingeloggt?"
builder.Services.AddAuthorizationCore();
builder.Services.AddScoped<ApiAuthStateProvider>();
builder.Services.AddScoped<AuthenticationStateProvider>(sp =>
sp.GetRequiredService<ApiAuthStateProvider>());
// API-Services: Je ein Service pro API-Controller
builder.Services.AddScoped<IAuthService, AuthService>();
builder.Services.AddScoped<IEnvelopeService, EnvelopeService>();
// State: Ein State-Objekt pro Browser-Tab
builder.Services.AddScoped<EnvelopeState>();
await builder.Build().RunAsync();