AdminPanel/Netina.AdminPanel.PWA/Program.cs

42 lines
1.9 KiB
C#

using Append.Blazor.Printing;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using MudBlazor.Services;
using Netina.AdminPanel.PWA;
using Netina.AdminPanel.PWA.Services;
using Toolbelt.Blazor.Extensions.DependencyInjection;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
Address.WebSiteAddress = builder.Configuration.GetValue<string>($"WebSiteUrl") ?? string.Empty;
Address.StorageAddress = builder.Configuration.GetValue<string>("StorageBaseUrl") ?? string.Empty;
StatConfigs.IsShop = builder.Configuration.GetValue<bool>("IsShop");
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddCascadingAuthenticationState();
builder.Services.AddOptions();
builder.Services.AddAuthorizationCore(option=>option.ConfigPolicies());
builder.Services.AddApiAuthorization();
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthenticationStateProvider>();
builder.Services.AddMudServices(config =>
{
config.SnackbarConfiguration.VisibleStateDuration = 3500;
config.SnackbarConfiguration.HideTransitionDuration = 200;
config.SnackbarConfiguration.ShowTransitionDuration = 200;
config.SnackbarConfiguration.SnackbarVariant = Variant.Filled;
config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomCenter;
});
builder.Services.AddScoped<IRestWrapper, RestWrapper>();
builder.Services.AddScoped<IUserUtility, UserUtility>();
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddScoped<Radzen.ContextMenuService>();
builder.Services.AddScoped<Radzen.DialogService>();
builder.Services.AddSingleton<IEncryptProvider, AesJsProvider>();
builder.Services.AddScoped<IPrintingService, PrintingService>();
builder.Services.AddPWAUpdater();
await builder.Build().RunAsync();