|
- using System;
- using System.Net.Http;
- using Blazorise.Bootstrap5;
- using Blazorise.Icons.FontAwesome;
- using Microsoft.AspNetCore.Components.Web;
- using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Himp.TaskScheduling.Blazor.WebAssembly;
- using Volo.Abp.Account;
- using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
- using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme;
- using Volo.Abp.Autofac.WebAssembly;
- using Volo.Abp.AutoMapper;
- using Volo.Abp.Identity.Blazor.WebAssembly;
- using Volo.Abp.Modularity;
- using Volo.Abp.SettingManagement.Blazor.WebAssembly;
- using Volo.Abp.TenantManagement.Blazor.WebAssembly;
- using Volo.Abp.UI.Navigation;
-
- namespace Himp.TaskScheduling.Blazor.Host.Client;
-
- [DependsOn(
- typeof(AbpAutofacWebAssemblyModule),
- typeof(AbpAspNetCoreComponentsWebAssemblyBasicThemeModule),
- typeof(AbpAccountApplicationContractsModule),
- typeof(AbpIdentityBlazorWebAssemblyModule),
- typeof(AbpTenantManagementBlazorWebAssemblyModule),
- typeof(AbpSettingManagementBlazorWebAssemblyModule),
- typeof(TaskSchedulingBlazorWebAssemblyModule)
- )]
- public class TaskSchedulingBlazorHostClientModule : AbpModule
- {
- public override void ConfigureServices(ServiceConfigurationContext context)
- {
- var environment = context.Services.GetSingletonInstance<IWebAssemblyHostEnvironment>();
- var builder = context.Services.GetSingletonInstance<WebAssemblyHostBuilder>();
-
- ConfigureAuthentication(builder);
- ConfigureHttpClient(context, environment);
- ConfigureBlazorise(context);
- ConfigureRouter(context);
- ConfigureMenu(context);
- ConfigureAutoMapper(context);
- }
-
- private void ConfigureRouter(ServiceConfigurationContext context)
- {
- Configure<AbpRouterOptions>(options =>
- {
- options.AppAssembly = typeof(TaskSchedulingBlazorHostClientModule).Assembly;
- });
- }
-
- private void ConfigureMenu(ServiceConfigurationContext context)
- {
- Configure<AbpNavigationOptions>(options =>
- {
- options.MenuContributors.Add(new TaskSchedulingHostMenuContributor(context.Services.GetConfiguration()));
- });
- }
-
- private void ConfigureBlazorise(ServiceConfigurationContext context)
- {
- context.Services
- .AddBootstrap5Providers()
- .AddFontAwesomeIcons();
- }
-
- private static void ConfigureAuthentication(WebAssemblyHostBuilder builder)
- {
- builder.Services.AddOidcAuthentication(options =>
- {
- builder.Configuration.Bind("AuthServer", options.ProviderOptions);
- options.ProviderOptions.DefaultScopes.Add("TaskScheduling");
- });
- }
-
- private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment)
- {
- context.Services.AddTransient(sp => new HttpClient
- {
- BaseAddress = new Uri(environment.BaseAddress)
- });
- }
-
- private void ConfigureAutoMapper(ServiceConfigurationContext context)
- {
- Configure<AbpAutoMapperOptions>(options =>
- {
- options.AddMaps<TaskSchedulingBlazorHostClientModule>();
- });
- }
- }
|