Files
WeShare/WeShare/Program.cs
T
2026-09-26 22:17:32 +02:00

49 lines
1.3 KiB
C#

using Microsoft.AspNetCore.Http.Features;
using WeShare.Components;
using WeShare.Endpoints;
using WeShare.Models;
using WeShare.Services;
var builder = WebApplication.CreateBuilder(args);
// Configure options
builder.Services.Configure<WeShareOptions>(builder.Configuration.GetSection(WeShareOptions.SectionName));
// Configure Large File form options for chunk transfer
builder.Services.Configure<FormOptions>(options =>
{
options.MultipartBodyLengthLimit = 50 * 1024 * 1024; // 50MB per chunk form request
});
// Register services
builder.Services.AddSingleton<IPasswordHasher, PasswordHasher>();
builder.Services.AddSingleton<IShareStorageService, ShareStorageService>();
builder.Services.AddHostedService<CleanupBackgroundService>();
// Add Blazor InteractiveServer
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseAntiforgery();
app.UseStaticFiles();
// Map Minimal API Endpoints
app.MapUploadEndpoints();
app.MapDownloadEndpoints();
// Map Blazor Components
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.Run();