My Project 1.0
Open Source Encrypted Vault Storage
Loading...
Searching...
No Matches
Program.cs
Go to the documentation of this file.
1using Blazored.SessionStorage;
8using ignivault.App;
11using Microsoft.AspNetCore.Components.Authorization;
12using Microsoft.AspNetCore.Components.Web;
13using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
14using Syncfusion.Blazor;
15using Syncfusion.Blazor.Charts.Chart.Internal;
16using Syncfusion.Licensing;
17using System.Net.Http;
18var builder = WebAssemblyHostBuilder.CreateDefault(args);
19//Get required configuration properties
20var _webApiBase = builder.Configuration["Http:ApiBase"];
21
22
23
24
25builder.RootComponents.Add<App>("#app");
26builder.RootComponents.Add<HeadOutlet>("head::after");
27
28//Register Syncfusion and Blazored Session Storage
29builder.Services.AddSyncfusionBlazor();
30builder.Services.AddBlazoredSessionStorage();
31
32//Register Blazors core authorization services
33builder.Services.AddAuthorizationCore(options =>
34{
35 options.AddPolicy("IsAdmin", policy => policy.RequireRole("Admin"));
36});
37builder.Services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
38
39//Register more auth stuff
40builder.Services.AddScoped<ITokenManager, TokenManager>();
41builder.Services.AddScoped<AuthHeaderHandler>();
42
43
44//Configure HttpClient
45builder.Services.AddHttpClient("ApiClient", client =>
46{
47 client.BaseAddress = new Uri(_webApiBase ?? "NULL");
48 client.Timeout = TimeSpan.FromMinutes(5);
49}).AddHttpMessageHandler<AuthHeaderHandler>();
50builder.Services.AddHttpClient<IAuthApiClient, AuthApiClient>(client =>
51{
52 client.BaseAddress = new Uri(_webApiBase!);
53 client.Timeout = TimeSpan.FromMinutes(5);
54}).AddHttpMessageHandler<AuthHeaderHandler>();
55
56builder.Services.AddHttpClient<IAccountApiClient, AccountApiClient>(client =>
57{
58 client.BaseAddress = new Uri(_webApiBase!);
59 client.Timeout = TimeSpan.FromMinutes(5);
60}).AddHttpMessageHandler<AuthHeaderHandler>();
61
62builder.Services.AddHttpClient<IVaultApiClient, VaultApiClient>(client =>
63{
64 client.BaseAddress = new Uri(_webApiBase!);
65 client.Timeout = TimeSpan.FromMinutes(10);
66}).AddHttpMessageHandler<AuthHeaderHandler>();
67
68builder.Services.AddHttpClient<IAdminApiClient, AdminApiClient>(client =>
69{
70 client.BaseAddress = new Uri(_webApiBase!);
71 client.Timeout = TimeSpan.FromMinutes(5);
72}).AddHttpMessageHandler<AuthHeaderHandler>();
73
74builder.Services.AddHttpClient<IReportsApiClient, ReportsApiClient>(client =>
75{
76 client.BaseAddress = new Uri(_webApiBase!);
77 client.Timeout = TimeSpan.FromMinutes(5);
78}).AddHttpMessageHandler<AuthHeaderHandler>();
79
80//Register all the API clients
81builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("ApiClient"));
82builder.Services.AddScoped<IAuthApiClient, AuthApiClient>();
84builder.Services.AddScoped<IVaultApiClient, VaultApiClient>();
86builder.Services.AddScoped<IAdminApiClient, AdminApiClient>();
87
88//Register Client side services
89builder.Services.AddSingleton<AppState>();
90builder.Services.AddScoped<ICryptoService, CryptoService>();
91
92await builder.Build().RunAsync();
var _webApiBase
Definition Program.cs:20
var builder
Definition Program.cs:18