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.
33 lines
1.3 KiB
C#
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();
|