Пример #1
0
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);


            builder.Services.AddTransient(sp => new HttpClient {
                BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
            });

            var host = builder.Build();

            var configuration = host.Services.GetRequiredService <IConfiguration>();
            var baseAPI       = configuration.GetSection("BaseApi").Value;

            // ***************************************** DI *****************************************

            // --------- API Services -----------
            builder.Services.AddTransient <AuthService>();

            // --------- Internal Services -----------
            builder.Services.AddTransient <ConfigServices>();

            // ------- DTO validators -------
            builder.Services.AddTransient <IValidator <CreateLoginRequest>, CreateLoginRequestValidator>();

            // --------- auth -----------
            builder.Services.AddScoped <BaseApiAuthenticationStateProvider>();
            builder.Services.AddScoped <AuthenticationStateProvider>(opt => opt.GetRequiredService <BaseApiAuthenticationStateProvider>());
            builder.Services.AddAuthorizationCore(config =>
            {
                config.AddPolicy(EnumPermissions.Perm1.ToString(), PoliciesConfig.Perm1());
                config.AddPolicy(EnumPermissions.Perm2.ToString(), PoliciesConfig.Perm2());
            });

            // ***************************************** Others *****************************************
            builder.Services.AddOptions();
            builder.Services.AddTransient <BaseAPIServiceHandler>();
            builder.Services.AddBlazoredLocalStorage();
            builder.Services.AddHttpClient("BaseAPI", client =>
            {
                client.BaseAddress = new Uri(baseAPI);
            })
            .AddHttpMessageHandler <BaseAPIServiceHandler>();



            builder.Services.AddBlazoredModal();

            builder.RootComponents.Add <App>("app");
            await builder.Build().RunAsync();
        }
Пример #2
0
 public PolicyFactory(IOptions <PoliciesConfig> policiesConfig)
 {
     _policiesConfig = policiesConfig?.Value ?? throw new ArgumentNullException(nameof(PoliciesConfig));
 }