diff --git a/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/AbpAccountBlazorMudBlazorModule.cs b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/AbpAccountBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..fa7a53b8c1 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/AbpAccountBlazorMudBlazorModule.cs @@ -0,0 +1,50 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Account.Blazor.MudBlazor.Pages.Account; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor; +using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.Mapperly; +using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.Account.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpAspNetCoreComponentsWebThemingMudBlazorModule), + typeof(AbpMapperlyModule), + typeof(AbpAccountApplicationContractsModule) + )] +public class AbpAccountBlazorMudBlazorModule : AbpModule +{ + private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddMapperlyObjectMapper(); + + Configure(options => + { + options.MenuContributors.Add(new AbpAccountBlazorUserMenuContributor()); + }); + + Configure(options => + { + options.AdditionalAssemblies.Add(typeof(AbpAccountBlazorMudBlazorModule).Assembly); + }); + } + + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.User, + editFormTypes: new[] { typeof(PersonalInfoModel) } + ); + }); + } +} diff --git a/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/Volo.Abp.Account.Blazor.MudBlazor.csproj b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/Volo.Abp.Account.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..8ee2deb508 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Blazor.MudBlazor/Volo.Abp.Account.Blazor.MudBlazor.csproj @@ -0,0 +1,20 @@ + + + + + + + net10.0 + Volo.Abp.Account.Blazor.MudBlazor + + + + + + + + + + + + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/AbpFeatureManagementBlazorMudBlazorServerModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/AbpFeatureManagementBlazorMudBlazorServerModule.cs new file mode 100644 index 0000000000..68bd8d2a84 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/AbpFeatureManagementBlazorMudBlazorServerModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.AspNetCore.Components.Server.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server; + +[DependsOn( + typeof(AbpFeatureManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsServerThemingMudBlazorModule) +)] +public class AbpFeatureManagementBlazorMudBlazorServerModule : AbpModule +{ +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server.csproj new file mode 100644 index 0000000000..43bddde3b2 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server/Volo.Abp.FeatureManagement.Blazor.MudBlazor.Server.csproj @@ -0,0 +1,15 @@ + + + + + + + net10.0 + + + + + + + + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/AbpFeatureManagementBlazorMudBlazorWebAssemblyModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/AbpFeatureManagementBlazorMudBlazorWebAssemblyModule.cs new file mode 100644 index 0000000000..81ff2be458 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/AbpFeatureManagementBlazorMudBlazorWebAssemblyModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly; + +[DependsOn( + typeof(AbpFeatureManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyThemingMudBlazorModule), + typeof(AbpFeatureManagementHttpApiClientModule) +)] +public class AbpFeatureManagementBlazorMudBlazorWebAssemblyModule : AbpModule +{ +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly.csproj new file mode 100644 index 0000000000..4e5f72aa1a --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.FeatureManagement.Blazor.MudBlazor.WebAssembly.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/AbpFeatureManagementBlazorMudBlazorModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/AbpFeatureManagementBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..08d86950d1 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/AbpFeatureManagementBlazorMudBlazorModule.cs @@ -0,0 +1,34 @@ +using Localization.Resources.AbpUi; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor; +using Volo.Abp.FeatureManagement.Blazor.MudBlazor.Settings; +using Volo.Abp.FeatureManagement.Localization; +using Volo.Abp.Features; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement.Blazor.MudBlazor; + +namespace Volo.Abp.FeatureManagement.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpAspNetCoreComponentsWebThemingMudBlazorModule), + typeof(AbpFeatureManagementApplicationContractsModule), + typeof(AbpFeaturesModule), + typeof(AbpSettingManagementBlazorMudBlazorModule) +)] +public class AbpFeatureManagementBlazorMudBlazorModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Contributors.Add(new FeatureSettingManagementComponentContributor()); + }); + + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes(typeof(AbpUiResource)); + }); + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Volo.Abp.FeatureManagement.Blazor.MudBlazor.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Volo.Abp.FeatureManagement.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..3a568524e3 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.MudBlazor/Volo.Abp.FeatureManagement.Blazor.MudBlazor.csproj @@ -0,0 +1,20 @@ + + + + + + + net10.0 + + + + + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/AbpIdentityBlazorMudBlazorServerModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/AbpIdentityBlazorMudBlazorServerModule.cs new file mode 100644 index 0000000000..f64e0c63c6 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/AbpIdentityBlazorMudBlazorServerModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components.Server.Theming.MudBlazor; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server; + +namespace Volo.Abp.Identity.Blazor.MudBlazor.Server; + +[DependsOn( + typeof(AbpIdentityBlazorMudBlazorModule), + typeof(AbpPermissionManagementBlazorMudBlazorServerModule) +)] +public class AbpIdentityBlazorMudBlazorServerModule : AbpModule +{ +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/Volo.Abp.Identity.Blazor.MudBlazor.Server.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/Volo.Abp.Identity.Blazor.MudBlazor.Server.csproj new file mode 100644 index 0000000000..544df7438d --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.Server/Volo.Abp.Identity.Blazor.MudBlazor.Server.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/AbpIdentityBlazorMudBlazorWebAssemblyModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/AbpIdentityBlazorMudBlazorWebAssemblyModule.cs new file mode 100644 index 0000000000..7293d59e71 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/AbpIdentityBlazorMudBlazorWebAssemblyModule.cs @@ -0,0 +1,14 @@ +using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.MudBlazor; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly; + +namespace Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly; + +[DependsOn( + typeof(AbpIdentityBlazorMudBlazorModule), + typeof(AbpPermissionManagementBlazorMudBlazorWebAssemblyModule), + typeof(AbpIdentityHttpApiClientModule) +)] +public class AbpIdentityBlazorMudBlazorWebAssemblyModule : AbpModule +{ +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly.csproj new file mode 100644 index 0000000000..787796d87e --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly/Volo.Abp.Identity.Blazor.MudBlazor.WebAssembly.csproj @@ -0,0 +1,17 @@ + + + + + + + net10.0 + + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs new file mode 100644 index 0000000000..50a2668b56 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMappers.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Mapperly; + +namespace Volo.Abp.Identity.Blazor.MudBlazor; + +[Mapper(UseDeepCloning = true)] +public static partial class AbpIdentityBlazorMappers +{ + public static partial IdentityUserDto Clone(this IdentityUserDto source); + public static partial IdentityRoleDto Clone(this IdentityRoleDto source); +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..b71c40a089 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityBlazorMudBlazorModule.cs @@ -0,0 +1,72 @@ +using Localization.Resources.AbpUi; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.Mapperly; +using Volo.Abp.MudBlazorUI; +using Volo.Abp.Identity.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.PermissionManagement.Blazor.MudBlazor; +using Volo.Abp.Threading; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.Identity.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpIdentityApplicationContractsModule), + typeof(AbpMapperlyModule), + typeof(AbpPermissionManagementBlazorMudBlazorModule), + typeof(AbpMudBlazorUIModule) + )] +public class AbpIdentityBlazorMudBlazorModule : AbpModule +{ + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddMapperlyObjectMapper(); + + Configure(options => + { + options.MenuContributors.Add(new AbpIdentityWebMainMenuContributor()); + }); + + Configure(options => + { + options.AdditionalAssemblies.Add(typeof(AbpIdentityBlazorMudBlazorModule).Assembly); + }); + + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); + } + + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.Role, + createFormTypes: new[] { typeof(IdentityRoleCreateDto) }, + editFormTypes: new[] { typeof(IdentityRoleUpdateDto) } + ); + + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + IdentityModuleExtensionConsts.ModuleName, + IdentityModuleExtensionConsts.EntityNames.User, + createFormTypes: new[] { typeof(IdentityUserCreateDto) }, + editFormTypes: new[] { typeof(IdentityUserUpdateDto) } + ); + }); + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityWebMainMenuContributor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityWebMainMenuContributor.cs new file mode 100644 index 0000000000..4b2a2313e0 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/AbpIdentityWebMainMenuContributor.cs @@ -0,0 +1,37 @@ +using System.Threading.Tasks; +using Volo.Abp.Identity.Localization; +using Volo.Abp.UI.Navigation; +using Volo.Abp.Authorization.Permissions; + +namespace Volo.Abp.Identity.Blazor.MudBlazor; + +public class AbpIdentityWebMainMenuContributor : IMenuContributor +{ + public virtual Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name != StandardMenus.Main) + { + return Task.CompletedTask; + } + + var administrationMenu = context.Menu.GetAdministration(); + + var l = context.GetLocalizer(); + + var identityMenuItem = new ApplicationMenuItem(IdentityMenuNames.GroupName, l["Menu:IdentityManagement"], + icon: "far fa-id-card"); + administrationMenu.AddItem(identityMenuItem); + + identityMenuItem.AddItem(new ApplicationMenuItem( + IdentityMenuNames.Roles, + l["Roles"], + url: "~/identity/roles").RequirePermissions(IdentityPermissions.Roles.Default)); + + identityMenuItem.AddItem(new ApplicationMenuItem( + IdentityMenuNames.Users, + l["Users"], + url: "~/identity/users").RequirePermissions(IdentityPermissions.Users.Default)); + + return Task.CompletedTask; + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/IdentityMenuNames.cs b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/IdentityMenuNames.cs new file mode 100644 index 0000000000..cef7d513c5 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/IdentityMenuNames.cs @@ -0,0 +1,10 @@ +namespace Volo.Abp.Identity.Blazor.MudBlazor; + +public static class IdentityMenuNames +{ + public const string GroupName = "IdentityManagement"; + + public const string Roles = "AbpIdentity.Roles"; + + public const string Users = "AbpIdentity.Users"; +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..6649068b03 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/Volo.Abp.Identity.Blazor.MudBlazor.csproj @@ -0,0 +1,19 @@ + + + + + + + net10.0 + + + + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor new file mode 100644 index 0000000000..5861fe75ee --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor.MudBlazor/_Imports.razor @@ -0,0 +1,7 @@ +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Forms +@using Volo.Abp.AspNetCore.Components.Web +@using Volo.Abp.MudBlazorUI +@using Volo.Abp.MudBlazorUI.Components +@using MudBlazor +@using MudBlazor.Components diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/AbpPermissionManagementBlazorMudBlazorServerModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/AbpPermissionManagementBlazorMudBlazorServerModule.cs new file mode 100644 index 0000000000..5b38c31260 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/AbpPermissionManagementBlazorMudBlazorServerModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.AspNetCore.Components.Server.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server; + +[DependsOn( + typeof(AbpPermissionManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsServerThemingMudBlazorModule) +)] +public class AbpPermissionManagementBlazorMudBlazorServerModule : AbpModule +{ +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server.csproj new file mode 100644 index 0000000000..df904cf169 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server/Volo.Abp.PermissionManagement.Blazor.MudBlazor.Server.csproj @@ -0,0 +1,15 @@ + + + + + + + net10.0 + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/AbpPermissionManagementBlazorMudBlazorWebAssemblyModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/AbpPermissionManagementBlazorMudBlazorWebAssemblyModule.cs new file mode 100644 index 0000000000..074a9e7be4 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/AbpPermissionManagementBlazorMudBlazorWebAssemblyModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly; + +[DependsOn( + typeof(AbpPermissionManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyThemingMudBlazorModule), + typeof(AbpPermissionManagementHttpApiClientModule) +)] +public class AbpPermissionManagementBlazorMudBlazorWebAssemblyModule : AbpModule +{ +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly.csproj new file mode 100644 index 0000000000..bf8592660a --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.PermissionManagement.Blazor.MudBlazor.WebAssembly.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/AbpPermissionManagementBlazorMudBlazorModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/AbpPermissionManagementBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..161b8c10c2 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/AbpPermissionManagementBlazorMudBlazorModule.cs @@ -0,0 +1,26 @@ +using Localization.Resources.AbpUi; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.Localization; + +namespace Volo.Abp.PermissionManagement.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpAspNetCoreComponentsWebThemingMudBlazorModule), + typeof(AbpPermissionManagementApplicationContractsModule) + )] +public class AbpPermissionManagementBlazorMudBlazorModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Volo.Abp.PermissionManagement.Blazor.MudBlazor.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Volo.Abp.PermissionManagement.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..d12603d05f --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Volo.Abp.PermissionManagement.Blazor.MudBlazor.csproj @@ -0,0 +1,18 @@ + + + + + + + net10.0 + + + + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor new file mode 100644 index 0000000000..bfec4381b3 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/_Imports.razor @@ -0,0 +1,3 @@ +@using Microsoft.AspNetCore.Components.Web +@using Volo.Abp.AspNetCore.Components.Web +@using MudBlazor diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/AbpSettingManagementBlazorMudBlazorServerModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/AbpSettingManagementBlazorMudBlazorServerModule.cs new file mode 100644 index 0000000000..8a100a605e --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/AbpSettingManagementBlazorMudBlazorServerModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.AspNetCore.Components.Server.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.SettingManagement.Blazor.MudBlazor.Server; + +[DependsOn( + typeof(AbpSettingManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsServerThemingMudBlazorModule) +)] +public class AbpSettingManagementBlazorMudBlazorServerModule : AbpModule +{ +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server.csproj new file mode 100644 index 0000000000..99c10ba6e0 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server/Volo.Abp.SettingManagement.Blazor.MudBlazor.Server.csproj @@ -0,0 +1,15 @@ + + + + + + + net10.0 + + + + + + + + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/AbpSettingManagementBlazorMudBlazorWebAssemblyModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/AbpSettingManagementBlazorMudBlazorWebAssemblyModule.cs new file mode 100644 index 0000000000..6ecf4db202 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/AbpSettingManagementBlazorMudBlazorWebAssemblyModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly; + +[DependsOn( + typeof(AbpSettingManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyThemingMudBlazorModule), + typeof(AbpSettingManagementHttpApiClientModule) +)] +public class AbpSettingManagementBlazorMudBlazorWebAssemblyModule : AbpModule +{ +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly.csproj new file mode 100644 index 0000000000..c219f565c9 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.SettingManagement.Blazor.MudBlazor.WebAssembly.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/AbpSettingManagementBlazorMudBlazorModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/AbpSettingManagementBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..a5ddb14976 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/AbpSettingManagementBlazorMudBlazorModule.cs @@ -0,0 +1,51 @@ +using Localization.Resources.AbpUi; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Web.Theming.MudBlazor; +using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.Localization; +using Volo.Abp.Mapperly; +using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Menus; +using Volo.Abp.SettingManagement.Blazor.MudBlazor.Settings; +using Volo.Abp.SettingManagement.Localization; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.SettingManagement.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpMapperlyModule), + typeof(AbpAspNetCoreComponentsWebThemingMudBlazorModule), + typeof(AbpSettingManagementApplicationContractsModule) +)] +public class AbpSettingManagementBlazorMudBlazorModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddMapperlyObjectMapper(); + + Configure(options => + { + options.MenuContributors.Add(new SettingManagementMenuContributor()); + }); + + Configure(options => + { + options.AdditionalAssemblies.Add(typeof(AbpSettingManagementBlazorMudBlazorModule).Assembly); + }); + + Configure(options => + { + options.Contributors.Add(new EmailingPageContributor()); + options.Contributors.Add(new TimeZonePageContributor()); + }); + + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Volo.Abp.SettingManagement.Blazor.MudBlazor.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Volo.Abp.SettingManagement.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..93f85f21e9 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.MudBlazor/Volo.Abp.SettingManagement.Blazor.MudBlazor.csproj @@ -0,0 +1,19 @@ + + + + + + + net10.0 + Volo.Abp.SettingManagement.Blazor.MudBlazor + + + + + + + + + + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/AbpTenantManagementBlazorMudBlazorServerModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/AbpTenantManagementBlazorMudBlazorServerModule.cs new file mode 100644 index 0000000000..db01b8f227 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/AbpTenantManagementBlazorMudBlazorServerModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.AspNetCore.Components.Server.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.TenantManagement.Blazor.MudBlazor.Server; + +[DependsOn( + typeof(AbpTenantManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsServerThemingMudBlazorModule) +)] +public class AbpTenantManagementBlazorMudBlazorServerModule : AbpModule +{ +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server.csproj new file mode 100644 index 0000000000..ef02f40551 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server/Volo.Abp.TenantManagement.Blazor.MudBlazor.Server.csproj @@ -0,0 +1,15 @@ + + + + + + + net10.0 + + + + + + + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/AbpTenantManagementBlazorMudBlazorWebAssemblyModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/AbpTenantManagementBlazorMudBlazorWebAssemblyModule.cs new file mode 100644 index 0000000000..63daa7c1f1 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/AbpTenantManagementBlazorMudBlazorWebAssemblyModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.MudBlazor; +using Volo.Abp.Modularity; + +namespace Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly; + +[DependsOn( + typeof(AbpTenantManagementBlazorMudBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyThemingMudBlazorModule), + typeof(AbpTenantManagementHttpApiClientModule) +)] +public class AbpTenantManagementBlazorMudBlazorWebAssemblyModule : AbpModule +{ +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly.csproj new file mode 100644 index 0000000000..fbd6dcf5f3 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.MudBlazor.WebAssembly.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/AbpTenantManagementBlazorMudBlazorModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/AbpTenantManagementBlazorMudBlazorModule.cs new file mode 100644 index 0000000000..4a698f6a40 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/AbpTenantManagementBlazorMudBlazorModule.cs @@ -0,0 +1,64 @@ +using Localization.Resources.AbpUi; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; +using Volo.Abp.Mapperly; +using Volo.Abp.FeatureManagement.Blazor.MudBlazor; +using Volo.Abp.FeatureManagement.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.TenantManagement.Blazor.MudBlazor.Navigation; +using Volo.Abp.TenantManagement.Localization; +using Volo.Abp.Threading; +using Volo.Abp.UI.Navigation; + +namespace Volo.Abp.TenantManagement.Blazor.MudBlazor; + +[DependsOn( + typeof(AbpMapperlyModule), + typeof(AbpTenantManagementApplicationContractsModule), + typeof(AbpFeatureManagementBlazorMudBlazorModule) +)] +public class AbpTenantManagementBlazorMudBlazorModule : AbpModule +{ + private static readonly OneTimeRunner OneTimeRunner = new(); + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddMapperlyObjectMapper(); + + Configure(options => + { + options.MenuContributors.Add(new TenantManagementBlazorMenuContributor()); + }); + + Configure(options => + { + options.AdditionalAssemblies.Add(typeof(AbpTenantManagementBlazorMudBlazorModule).Assembly); + }); + + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpFeatureManagementResource), + typeof(AbpUiResource)); + }); + } + + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + TenantManagementModuleExtensionConsts.ModuleName, + TenantManagementModuleExtensionConsts.EntityNames.Tenant, + createFormTypes: new[] { typeof(TenantCreateDto) }, + editFormTypes: new[] { typeof(TenantUpdateDto) } + ); + }); + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Volo.Abp.TenantManagement.Blazor.MudBlazor.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Volo.Abp.TenantManagement.Blazor.MudBlazor.csproj new file mode 100644 index 0000000000..d7748927ac --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.MudBlazor/Volo.Abp.TenantManagement.Blazor.MudBlazor.csproj @@ -0,0 +1,22 @@ + + + + + + + net10.0 + + + + + + + + + + + + + + +