35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.AspNetCore.Components.Authorization;
|
|
using Microsoft.AspNetCore.Components.Web;
|
|
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
|
using MudBlazor.Services;
|
|
using PlaylistShared.Pwa;
|
|
using PlaylistShared.Pwa.Services;
|
|
|
|
internal class Program
|
|
{
|
|
private static async global::System.Threading.Tasks.Task Main(string[] args)
|
|
{
|
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
|
builder.RootComponents.Add<App>("#app");
|
|
builder.RootComponents.Add<HeadOutlet>("head::after");
|
|
|
|
builder.Services.AddMudServices();
|
|
builder.Services.AddScoped(sp =>
|
|
{
|
|
var apiUrl = builder.Configuration["ApiBaseUrl"] ?? builder.HostEnvironment.BaseAddress;
|
|
return new HttpClient { BaseAddress = new Uri(apiUrl) };
|
|
});
|
|
|
|
builder.Services.AddScoped<TokenStorage>();
|
|
builder.Services.AddScoped<PlayerStorage>();
|
|
builder.Services.AddScoped<AuthStateProvider>();
|
|
builder.Services.AddScoped<AuthenticationStateProvider>(sp => sp.GetRequiredService<AuthStateProvider>());
|
|
builder.Services.AddScoped<ApiClient>();
|
|
builder.Services.AddScoped<IAudioPlayerService, AudioPlayerService>();
|
|
|
|
builder.Services.AddAuthorizationCore();
|
|
builder.Services.AddCascadingAuthenticationState();
|
|
|
|
await builder.Build().RunAsync();
|
|
}
|
|
} |