Files
TuneRipper/TuneRipper/Program.cs
T
Michal Vrba 8bfcc3617b Add DI, config, and API service for Blazor frontend
Introduce configuration classes and environment-specific settings files. Add DI extensions for registering API/app settings and HttpClient. Implement ITuneRipperApiService with robust error handling and logging. Update Program.cs for config loading and startup logging. Add usage documentation and update imports for new services and extensions. Improves maintainability and developer experience.
2025-12-11 14:37:38 +01:00

33 lines
1.3 KiB
C#

using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using TuneRipper;
using TuneRipper.Extensions;
using TuneRipper.Shared.Configuration;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
// Add configuration
builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
builder.Configuration.AddJsonFile($"appsettings.{builder.HostEnvironment.Environment}.json", optional: true, reloadOnChange: true);
// Add logging
builder.Logging.SetMinimumLevel(LogLevel.Information);
// Add TuneRipper services (API service, HttpClient, settings)
builder.Services.AddTuneRipperServices(builder.Configuration);
var app = builder.Build();
// Log startup information
var logger = app.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("?? TuneRipper Blazor WebAssembly app starting...");
var apiSettings = app.Configuration.GetApiSettings();
logger.LogInformation("?? API Base URL: {BaseUrl}", apiSettings.BaseUrl);
logger.LogInformation("?? API Settings - Timeout: {Timeout}s, Logging: {Logging}",
apiSettings.TimeoutSeconds, apiSettings.EnableLogging);
await app.RunAsync();