diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContext.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContext.cs index 5c595e9509..ba1e11105e 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContext.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContext.cs @@ -4,23 +4,22 @@ using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; -namespace Volo.Abp.SettingManagement.DemoApp +namespace Volo.Abp.SettingManagement.DemoApp; + +public class DemoAppDbContext : AbpDbContext { - public class DemoAppDbContext: AbpDbContext + public DemoAppDbContext(DbContextOptions options) + : base(options) { - public DemoAppDbContext(DbContextOptions options) - : base(options) - { - } + } - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - base.OnModelCreating(modelBuilder); + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); - modelBuilder.ConfigurePermissionManagement(); - modelBuilder.ConfigureSettingManagement(); - modelBuilder.ConfigureIdentity(); - } + modelBuilder.ConfigurePermissionManagement(); + modelBuilder.ConfigureSettingManagement(); + modelBuilder.ConfigureIdentity(); } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContextFactory.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContextFactory.cs index 94ab7d0a75..0ba03edb4f 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContextFactory.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppDbContextFactory.cs @@ -3,27 +3,26 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; -namespace Volo.Abp.SettingManagement.DemoApp +namespace Volo.Abp.SettingManagement.DemoApp; + +public class DemoAppDbContextFactory : IDesignTimeDbContextFactory { - public class DemoAppDbContextFactory : IDesignTimeDbContextFactory + public DemoAppDbContext CreateDbContext(string[] args) { - public DemoAppDbContext CreateDbContext(string[] args) - { - var configuration = BuildConfiguration(); + var configuration = BuildConfiguration(); - var builder = new DbContextOptionsBuilder() - .UseSqlServer(configuration.GetConnectionString("Default")); + var builder = new DbContextOptionsBuilder() + .UseSqlServer(configuration.GetConnectionString("Default")); - return new DemoAppDbContext(builder.Options); - } + return new DemoAppDbContext(builder.Options); + } - private static IConfigurationRoot BuildConfiguration() - { - var builder = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false); + private static IConfigurationRoot BuildConfiguration() + { + var builder = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false); - return builder.Build(); - } + return builder.Build(); } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs index 4e777d9a7b..d6eab1f069 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/DemoAppModule.cs @@ -28,121 +28,120 @@ using Volo.Abp.SettingManagement.Web; using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.SettingManagement.DemoApp +namespace Volo.Abp.SettingManagement.DemoApp; + +[DependsOn( + typeof(AbpSettingManagementWebModule), + typeof(AbpSettingManagementApplicationModule), + typeof(AbpSettingManagementHttpApiModule), + typeof(AbpAutofacModule), + typeof(AbpAccountWebModule), + typeof(AbpAccountApplicationModule), + typeof(AbpAccountHttpApiModule), + typeof(AbpEntityFrameworkCoreSqlServerModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpPermissionManagementEntityFrameworkCoreModule), + typeof(AbpPermissionManagementApplicationModule), + typeof(AbpPermissionManagementHttpApiModule), + typeof(AbpIdentityWebModule), + typeof(AbpIdentityApplicationModule), + typeof(AbpIdentityHttpApiModule), + typeof(AbpIdentityEntityFrameworkCoreModule), + typeof(AbpPermissionManagementDomainIdentityModule), + typeof(AbpAspNetCoreMvcUiBasicThemeModule) + )] +public class DemoAppModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementWebModule), - typeof(AbpSettingManagementApplicationModule), - typeof(AbpSettingManagementHttpApiModule), - typeof(AbpAutofacModule), - typeof(AbpAccountWebModule), - typeof(AbpAccountApplicationModule), - typeof(AbpAccountHttpApiModule), - typeof(AbpEntityFrameworkCoreSqlServerModule), - typeof(AbpSettingManagementEntityFrameworkCoreModule), - typeof(AbpPermissionManagementEntityFrameworkCoreModule), - typeof(AbpPermissionManagementApplicationModule), - typeof(AbpPermissionManagementHttpApiModule), - typeof(AbpIdentityWebModule), - typeof(AbpIdentityApplicationModule), - typeof(AbpIdentityHttpApiModule), - typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule) - )] - public class DemoAppModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var hostingEnvironment = context.Services.GetHostingEnvironment(); - var configuration = context.Services.GetConfiguration(); + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); #if DEBUG - context.Services.Replace(ServiceDescriptor.Singleton()); + context.Services.Replace(ServiceDescriptor.Singleton()); #endif - Configure(options => - { - options.UseSqlServer(); - }); - - if (hostingEnvironment.IsDevelopment()) - { - Configure(options => - { - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Web", Path.DirectorySeparatorChar))); - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Domain", Path.DirectorySeparatorChar))); - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Application", Path.DirectorySeparatorChar))); - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Application.Contracts", Path.DirectorySeparatorChar))); - }); - } - - context.Services.AddSwaggerGen( - options => - { - options.SwaggerDoc("v1", new OpenApiInfo { Title = "AbpSettingManagement API", Version = "v1" }); - options.DocInclusionPredicate((docName, description) => true); - options.CustomSchemaIds(type => type.FullName); - }); + Configure(options => + { + options.UseSqlServer(); + }); - Configure(options => + if (hostingEnvironment.IsDevelopment()) + { + Configure(options => { - options.Languages.Add(new LanguageInfo("en", "en", "English")); - options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); - options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); - options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); - options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); - options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); - options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); - options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); - options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Web", Path.DirectorySeparatorChar))); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Domain", Path.DirectorySeparatorChar))); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Application", Path.DirectorySeparatorChar))); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.Abp.SettingManagement.Application.Contracts", Path.DirectorySeparatorChar))); }); + } - Configure(options => + context.Services.AddSwaggerGen( + options => { - options.IsEnabled = true; + options.SwaggerDoc("v1", new OpenApiInfo { Title = "AbpSettingManagement API", Version = "v1" }); + options.DocInclusionPredicate((docName, description) => true); + options.CustomSchemaIds(type => type.FullName); }); - } - public override void OnApplicationInitialization(ApplicationInitializationContext context) + Configure(options => { - var app = context.GetApplicationBuilder(); + options.Languages.Add(new LanguageInfo("en", "en", "English")); + options.Languages.Add(new LanguageInfo("sk", "sk", "Slovak")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); + options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish")); + options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); + options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română")); + options.Languages.Add(new LanguageInfo("hi", "hi", "Hindi", "in")); + options.Languages.Add(new LanguageInfo("is", "is", "Icelandic", "is")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano", "it")); + }); - if (context.GetEnvironment().IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - else - { - app.UseErrorPage(); - app.UseHsts(); - } + Configure(options => + { + options.IsEnabled = true; + }); + } - app.UseHttpsRedirection(); - app.UseStaticFiles(); - app.UseRouting(); - app.UseAuthentication(); - app.UseAuthorization(); - app.UseMultiTenancy(); - app.UseAbpRequestLocalization(); + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); - app.UseSwagger(); - app.UseSwaggerUI(options => - { - options.SwaggerEndpoint("/swagger/v1/swagger.json", "SettingManagement APP API"); - }); + if (context.GetEnvironment().IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + app.UseErrorPage(); + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthentication(); + app.UseAuthorization(); + app.UseMultiTenancy(); + app.UseAbpRequestLocalization(); + + app.UseSwagger(); + app.UseSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/v1/swagger.json", "SettingManagement APP API"); + }); - app.UseConfiguredEndpoints(); + app.UseConfiguredEndpoints(); - using (var scope = context.ServiceProvider.CreateScope()) + using (var scope = context.ServiceProvider.CreateScope()) + { + AsyncHelper.RunSync(async () => { - AsyncHelper.RunSync(async () => - { - await scope.ServiceProvider - .GetRequiredService() - .SeedAsync(); - }); - } + await scope.ServiceProvider + .GetRequiredService() + .SeedAsync(); + }); } } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Migrations/20210209024820_init.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Migrations/20210209024820_init.cs index a60b127956..12af73bf16 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Migrations/20210209024820_init.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Migrations/20210209024820_init.cs @@ -1,500 +1,484 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; -namespace Volo.Abp.SettingManagement.DemoApp.Migrations +namespace Volo.Abp.SettingManagement.DemoApp.Migrations; + +public partial class init : Migration { - public partial class init : Migration + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AbpClaimTypes", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Required = table.Column(type: "bit", nullable: false), + IsStatic = table.Column(type: "bit", nullable: false), + Regex = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + RegexDescription = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + Description = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + ValueType = table.Column(type: "int", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpLinkUsers", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + SourceUserId = table.Column(type: "uniqueidentifier", nullable: false), + SourceTenantId = table.Column(type: "uniqueidentifier", nullable: true), + TargetUserId = table.Column(type: "uniqueidentifier", nullable: false), + TargetTenantId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpOrganizationUnits", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ParentId = table.Column(type: "uniqueidentifier", nullable: true), + Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), + DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); + table.ForeignKey( + name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", + column: x => x.ParentId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "AbpPermissionGrants", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpRoles", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + IsDefault = table.Column(type: "bit", nullable: false), + IsStatic = table.Column(type: "bit", nullable: false), + IsPublic = table.Column(type: "bit", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpRoles", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpSecurityLogs", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + Identity = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + Action = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpSettings", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + Value = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: false), + ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpSettings", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpUsers", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + Surname = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + Email = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + EmailConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), + PasswordHash = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + SecurityStamp = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + IsExternal = table.Column(type: "bit", nullable: false, defaultValue: false), + PhoneNumber = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), + PhoneNumberConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), + TwoFactorEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), + LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), + LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), + AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUsers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpOrganizationUnitRoles", + columns: table => new { + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); + table.ForeignKey( + name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUnitId", + column: x => x.OrganizationUnitId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpRoleClaims", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); + table.ForeignKey( + name: "FK_AbpRoleClaims_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserClaims", + columns: table => new { + Id = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserClaims", x => x.Id); + table.ForeignKey( + name: "FK_AbpUserClaims_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserLogins", + columns: table => new { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ProviderKey = table.Column(type: "nvarchar(196)", maxLength: 196, nullable: false), + ProviderDisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); + table.ForeignKey( + name: "FK_AbpUserLogins_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserOrganizationUnits", + columns: table => new { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); + table.ForeignKey( + name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUnitId", + column: x => x.OrganizationUnitId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserRoles", + columns: table => new { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); + table.ForeignKey( + name: "FK_AbpUserRoles_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpUserRoles_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserTokens", + columns: table => new { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Value = table.Column(type: "nvarchar(max)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + table.ForeignKey( + name: "FK_AbpUserTokens_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_TargetTenantId", + table: "AbpLinkUsers", + columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, + unique: true, + filter: "[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", + table: "AbpOrganizationUnitRoles", + columns: new[] { "RoleId", "OrganizationUnitId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnits_Code", + table: "AbpOrganizationUnits", + column: "Code"); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnits_ParentId", + table: "AbpOrganizationUnits", + column: "ParentId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpPermissionGrants_Name_ProviderName_ProviderKey", + table: "AbpPermissionGrants", + columns: new[] { "Name", "ProviderName", "ProviderKey" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpRoleClaims_RoleId", + table: "AbpRoleClaims", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpRoles_NormalizedName", + table: "AbpRoles", + column: "NormalizedName"); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_Action", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "Action" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_ApplicationName", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "ApplicationName" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_Identity", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "Identity" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_UserId", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSettings_Name_ProviderName_ProviderKey", + table: "AbpSettings", + columns: new[] { "Name", "ProviderName", "ProviderKey" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserClaims_UserId", + table: "AbpUserClaims", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserLogins_LoginProvider_ProviderKey", + table: "AbpUserLogins", + columns: new[] { "LoginProvider", "ProviderKey" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", + table: "AbpUserOrganizationUnits", + columns: new[] { "UserId", "OrganizationUnitId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserRoles_RoleId_UserId", + table: "AbpUserRoles", + columns: new[] { "RoleId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_Email", + table: "AbpUsers", + column: "Email"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_NormalizedEmail", + table: "AbpUsers", + column: "NormalizedEmail"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_NormalizedUserName", + table: "AbpUsers", + column: "NormalizedUserName"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_UserName", + table: "AbpUsers", + column: "UserName"); + } + + protected override void Down(MigrationBuilder migrationBuilder) { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AbpClaimTypes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Required = table.Column(type: "bit", nullable: false), - IsStatic = table.Column(type: "bit", nullable: false), - Regex = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - RegexDescription = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - Description = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - ValueType = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpLinkUsers", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - SourceUserId = table.Column(type: "uniqueidentifier", nullable: false), - SourceTenantId = table.Column(type: "uniqueidentifier", nullable: true), - TargetUserId = table.Column(type: "uniqueidentifier", nullable: false), - TargetTenantId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpOrganizationUnits", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ParentId = table.Column(type: "uniqueidentifier", nullable: true), - Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), - DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); - table.ForeignKey( - name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", - column: x => x.ParentId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "AbpPermissionGrants", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpRoles", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - IsDefault = table.Column(type: "bit", nullable: false), - IsStatic = table.Column(type: "bit", nullable: false), - IsPublic = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpRoles", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpSecurityLogs", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - Identity = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - Action = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpSettings", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - Value = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: false), - ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpSettings", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpUsers", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - Surname = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - Email = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - EmailConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), - PasswordHash = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - SecurityStamp = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - IsExternal = table.Column(type: "bit", nullable: false, defaultValue: false), - PhoneNumber = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), - PhoneNumberConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), - TwoFactorEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), - LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), - LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), - AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUsers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpOrganizationUnitRoles", - columns: table => new - { - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); - table.ForeignKey( - name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUnitId", - column: x => x.OrganizationUnitId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpRoleClaims", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); - table.ForeignKey( - name: "FK_AbpRoleClaims_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserClaims", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserClaims", x => x.Id); - table.ForeignKey( - name: "FK_AbpUserClaims_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserLogins", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ProviderKey = table.Column(type: "nvarchar(196)", maxLength: 196, nullable: false), - ProviderDisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); - table.ForeignKey( - name: "FK_AbpUserLogins_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserOrganizationUnits", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); - table.ForeignKey( - name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUnitId", - column: x => x.OrganizationUnitId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserRoles", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); - table.ForeignKey( - name: "FK_AbpUserRoles_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpUserRoles_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserTokens", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Value = table.Column(type: "nvarchar(max)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); - table.ForeignKey( - name: "FK_AbpUserTokens_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_TargetTenantId", - table: "AbpLinkUsers", - columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, - unique: true, - filter: "[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", - table: "AbpOrganizationUnitRoles", - columns: new[] { "RoleId", "OrganizationUnitId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnits_Code", - table: "AbpOrganizationUnits", - column: "Code"); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnits_ParentId", - table: "AbpOrganizationUnits", - column: "ParentId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpPermissionGrants_Name_ProviderName_ProviderKey", - table: "AbpPermissionGrants", - columns: new[] { "Name", "ProviderName", "ProviderKey" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpRoleClaims_RoleId", - table: "AbpRoleClaims", - column: "RoleId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpRoles_NormalizedName", - table: "AbpRoles", - column: "NormalizedName"); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_Action", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "Action" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_ApplicationName", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "ApplicationName" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_Identity", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "Identity" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_UserId", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "UserId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSettings_Name_ProviderName_ProviderKey", - table: "AbpSettings", - columns: new[] { "Name", "ProviderName", "ProviderKey" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserClaims_UserId", - table: "AbpUserClaims", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserLogins_LoginProvider_ProviderKey", - table: "AbpUserLogins", - columns: new[] { "LoginProvider", "ProviderKey" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", - table: "AbpUserOrganizationUnits", - columns: new[] { "UserId", "OrganizationUnitId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserRoles_RoleId_UserId", - table: "AbpUserRoles", - columns: new[] { "RoleId", "UserId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_Email", - table: "AbpUsers", - column: "Email"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_NormalizedEmail", - table: "AbpUsers", - column: "NormalizedEmail"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_NormalizedUserName", - table: "AbpUsers", - column: "NormalizedUserName"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_UserName", - table: "AbpUsers", - column: "UserName"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AbpClaimTypes"); - - migrationBuilder.DropTable( - name: "AbpLinkUsers"); - - migrationBuilder.DropTable( - name: "AbpOrganizationUnitRoles"); - - migrationBuilder.DropTable( - name: "AbpPermissionGrants"); - - migrationBuilder.DropTable( - name: "AbpRoleClaims"); - - migrationBuilder.DropTable( - name: "AbpSecurityLogs"); - - migrationBuilder.DropTable( - name: "AbpSettings"); - - migrationBuilder.DropTable( - name: "AbpUserClaims"); - - migrationBuilder.DropTable( - name: "AbpUserLogins"); + migrationBuilder.DropTable( + name: "AbpClaimTypes"); + + migrationBuilder.DropTable( + name: "AbpLinkUsers"); + + migrationBuilder.DropTable( + name: "AbpOrganizationUnitRoles"); + + migrationBuilder.DropTable( + name: "AbpPermissionGrants"); + + migrationBuilder.DropTable( + name: "AbpRoleClaims"); + + migrationBuilder.DropTable( + name: "AbpSecurityLogs"); + + migrationBuilder.DropTable( + name: "AbpSettings"); + + migrationBuilder.DropTable( + name: "AbpUserClaims"); + + migrationBuilder.DropTable( + name: "AbpUserLogins"); + + migrationBuilder.DropTable( + name: "AbpUserOrganizationUnits"); + + migrationBuilder.DropTable( + name: "AbpUserRoles"); - migrationBuilder.DropTable( - name: "AbpUserOrganizationUnits"); - - migrationBuilder.DropTable( - name: "AbpUserRoles"); - - migrationBuilder.DropTable( - name: "AbpUserTokens"); + migrationBuilder.DropTable( + name: "AbpUserTokens"); - migrationBuilder.DropTable( - name: "AbpOrganizationUnits"); + migrationBuilder.DropTable( + name: "AbpOrganizationUnits"); - migrationBuilder.DropTable( - name: "AbpRoles"); + migrationBuilder.DropTable( + name: "AbpRoles"); - migrationBuilder.DropTable( - name: "AbpUsers"); - } + migrationBuilder.DropTable( + name: "AbpUsers"); } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Pages/Index.cshtml.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Pages/Index.cshtml.cs index 14e4b728a3..88f908b2f4 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Pages/Index.cshtml.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Pages/Index.cshtml.cs @@ -1,11 +1,10 @@ using Microsoft.AspNetCore.Mvc.RazorPages; -namespace Volo.Abp.SettingManagement.DemoApp.Pages +namespace Volo.Abp.SettingManagement.DemoApp.Pages; + +public class IndexModel : PageModel { - public class IndexModel : PageModel + public void OnGet() { - public void OnGet() - { - } } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Program.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Program.cs index 19907d2ee5..93ca9453ad 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Program.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Program.cs @@ -4,44 +4,43 @@ using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; -namespace Volo.Abp.SettingManagement.DemoApp +namespace Volo.Abp.SettingManagement.DemoApp; + +public class Program { - public class Program + public static int Main(string[] args) { - public static int Main(string[] args) - { - Log.Logger = new LoggerConfiguration() - .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger(); + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .WriteTo.File("Logs/logs.txt") + .CreateLogger(); - try - { - Log.Information("Starting web host."); - CreateHostBuilder(args).Build().Run(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + try + { + Log.Information("Starting web host."); + CreateHostBuilder(args).Build().Run(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }) - .UseAutofac() - .UseSerilog(); } + + internal static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }) + .UseAutofac() + .UseSerilog(); } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Startup.cs b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Startup.cs index 50b57f668a..b5bfce8f91 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Startup.cs +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Startup.cs @@ -3,18 +3,17 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -namespace Volo.Abp.SettingManagement.DemoApp +namespace Volo.Abp.SettingManagement.DemoApp; + +public class Startup { - public class Startup + public void ConfigureServices(IServiceCollection services) { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } + services.AddApplication(); + } - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) + { + app.InitializeApplication(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AbpSettingManagementApplicationContractsModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AbpSettingManagementApplicationContractsModule.cs index 001eb011ad..eafad2c041 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AbpSettingManagementApplicationContractsModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AbpSettingManagementApplicationContractsModule.cs @@ -2,16 +2,15 @@ using Volo.Abp.Authorization; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpSettingManagementDomainSharedModule), + typeof(AbpDddApplicationContractsModule), + typeof(AbpAuthorizationAbstractionsModule) +)] +public class AbpSettingManagementApplicationContractsModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementDomainSharedModule), - typeof(AbpDddApplicationContractsModule), - typeof(AbpAuthorizationAbstractionsModule) - )] - public class AbpSettingManagementApplicationContractsModule : AbpModule - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker.cs index 30d6ffcf79..5633b2491e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker.cs @@ -5,21 +5,20 @@ using Volo.Abp.Features; using Volo.Abp.MultiTenancy; using Volo.Abp.SimpleStateChecking; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker : ISimpleStateChecker { - public class AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker : ISimpleStateChecker + public async Task IsEnabledAsync(SimpleStateCheckerContext context) { - public async Task IsEnabledAsync(SimpleStateCheckerContext context) - { - var currentTenant = context.ServiceProvider.GetRequiredService(); - - if (!currentTenant.IsAvailable) - { - return true; - } + var currentTenant = context.ServiceProvider.GetRequiredService(); - var featureChecker = context.ServiceProvider.GetRequiredService(); - return await featureChecker.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); + if (!currentTenant.IsAvailable) + { + return true; } + + var featureChecker = context.ServiceProvider.GetRequiredService(); + return await featureChecker.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/EmailSettingsDto.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/EmailSettingsDto.cs index 44cb894939..0ab523e134 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/EmailSettingsDto.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/EmailSettingsDto.cs @@ -1,23 +1,22 @@ -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class EmailSettingsDto { - public class EmailSettingsDto - { - public string SmtpHost { get; set; } + public string SmtpHost { get; set; } - public int SmtpPort { get; set; } + public int SmtpPort { get; set; } - public string SmtpUserName { get; set; } + public string SmtpUserName { get; set; } - public string SmtpPassword { get; set; } + public string SmtpPassword { get; set; } - public string SmtpDomain { get; set; } + public string SmtpDomain { get; set; } - public bool SmtpEnableSsl { get; set; } + public bool SmtpEnableSsl { get; set; } - public bool SmtpUseDefaultCredentials { get; set; } + public bool SmtpUseDefaultCredentials { get; set; } - public string DefaultFromAddress { get; set; } + public string DefaultFromAddress { get; set; } - public string DefaultFromDisplayName { get; set; } - } + public string DefaultFromDisplayName { get; set; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs index 75490998bb..72d995b251 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs @@ -1,12 +1,11 @@ using System.Threading.Tasks; using Volo.Abp.Application.Services; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public interface IEmailSettingsAppService : IApplicationService { - public interface IEmailSettingsAppService : IApplicationService - { - Task GetAsync(); + Task GetAsync(); - Task UpdateAsync(UpdateEmailSettingsDto input); - } + Task UpdateAsync(UpdateEmailSettingsDto input); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs index 06ca852da1..d624089989 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs @@ -2,22 +2,21 @@ using Volo.Abp.Localization; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementPermissionDefinitionProvider : PermissionDefinitionProvider { - public class SettingManagementPermissionDefinitionProvider : PermissionDefinitionProvider + public override void Define(IPermissionDefinitionContext context) { - public override void Define(IPermissionDefinitionContext context) - { - var moduleGroup = context.AddGroup(SettingManagementPermissions.GroupName, L("Permission:SettingManagement")); + var moduleGroup = context.AddGroup(SettingManagementPermissions.GroupName, L("Permission:SettingManagement")); - moduleGroup - .AddPermission(SettingManagementPermissions.Emailing, L("Permission:Emailing")) - .StateCheckers.Add(new AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker()); - } + moduleGroup + .AddPermission(SettingManagementPermissions.Emailing, L("Permission:Emailing")) + .StateCheckers.Add(new AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker()); + } - private static LocalizableString L(string name) - { - return LocalizableString.Create(name); - } + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs index b394f0d3de..dd8e028b45 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs @@ -1,16 +1,15 @@ using Volo.Abp.Reflection; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementPermissions { - public class SettingManagementPermissions - { - public const string GroupName = "SettingManagement"; + public const string GroupName = "SettingManagement"; - public const string Emailing = GroupName + ".Emailing"; + public const string Emailing = GroupName + ".Emailing"; - public static string[] GetAll() - { - return ReflectionHelper.GetPublicConstantsRecursively(typeof(SettingManagementPermissions)); - } + public static string[] GetAll() + { + return ReflectionHelper.GetPublicConstantsRecursively(typeof(SettingManagementPermissions)); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs index c8f241b856..a63901aa91 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs @@ -1,9 +1,8 @@ -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementRemoteServiceConsts { - public class SettingManagementRemoteServiceConsts - { - public const string RemoteServiceName = "SettingManagement"; + public const string RemoteServiceName = "SettingManagement"; - public const string ModuleName = "settingManagement"; - } + public const string ModuleName = "settingManagement"; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/UpdateEmailSettingsDto.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/UpdateEmailSettingsDto.cs index a2996d5b39..b2a6a4dce7 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/UpdateEmailSettingsDto.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/UpdateEmailSettingsDto.cs @@ -1,38 +1,37 @@ using System.ComponentModel.DataAnnotations; using Volo.Abp.Auditing; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class UpdateEmailSettingsDto { - public class UpdateEmailSettingsDto - { - [MaxLength(256)] - public string SmtpHost { get; set; } + [MaxLength(256)] + public string SmtpHost { get; set; } - [Range(1, 65535)] - public int SmtpPort { get; set; } + [Range(1, 65535)] + public int SmtpPort { get; set; } - [MaxLength(1024)] - public string SmtpUserName { get; set; } + [MaxLength(1024)] + public string SmtpUserName { get; set; } - [MaxLength(1024)] - [DataType(DataType.Password)] - [DisableAuditing] - public string SmtpPassword { get; set; } + [MaxLength(1024)] + [DataType(DataType.Password)] + [DisableAuditing] + public string SmtpPassword { get; set; } - [MaxLength(1024)] - public string SmtpDomain { get; set; } + [MaxLength(1024)] + public string SmtpDomain { get; set; } - public bool SmtpEnableSsl { get; set; } + public bool SmtpEnableSsl { get; set; } - public bool SmtpUseDefaultCredentials { get; set; } + public bool SmtpUseDefaultCredentials { get; set; } - [MaxLength(1024)] - [Required] - public string DefaultFromAddress { get; set; } + [MaxLength(1024)] + [Required] + public string DefaultFromAddress { get; set; } - [MaxLength(1024)] - [Required] - public string DefaultFromDisplayName { get; set; } - } + [MaxLength(1024)] + [Required] + public string DefaultFromDisplayName { get; set; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs index fc1c5b30b7..0f7b5584d2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/AbpSettingManagementApplicationModule.cs @@ -2,15 +2,14 @@ using Volo.Abp.Emailing; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpDddApplicationModule), + typeof(AbpSettingManagementDomainModule), + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpEmailingModule) +)] +public class AbpSettingManagementApplicationModule : AbpModule { - [DependsOn( - typeof(AbpDddApplicationModule), - typeof(AbpSettingManagementDomainModule), - typeof(AbpSettingManagementApplicationContractsModule), - typeof(AbpEmailingModule) - )] - public class AbpSettingManagementApplicationModule : AbpModule - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs index 35266c4306..92ee36cb04 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs @@ -5,67 +5,67 @@ using Volo.Abp.Emailing; using Volo.Abp.MultiTenancy; using Volo.Abp.Features; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[Authorize(SettingManagementPermissions.Emailing)] +public class EmailSettingsAppService : SettingManagementAppServiceBase, IEmailSettingsAppService { - [Authorize(SettingManagementPermissions.Emailing)] - public class EmailSettingsAppService : SettingManagementAppServiceBase, IEmailSettingsAppService + protected ISettingManager SettingManager { get; } + + public EmailSettingsAppService(ISettingManager settingManager) { - protected ISettingManager SettingManager { get; } + SettingManager = settingManager; + } - public EmailSettingsAppService(ISettingManager settingManager) - { - SettingManager = settingManager; - } + public virtual async Task GetAsync() + { + await CheckFeatureAsync(); - public virtual async Task GetAsync() + var settingsDto = new EmailSettingsDto { - await CheckFeatureAsync(); - - var settingsDto = new EmailSettingsDto { - SmtpHost = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Host), - SmtpPort = Convert.ToInt32(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Port)), - SmtpUserName = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UserName), - SmtpPassword = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Password), - SmtpDomain = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Domain), - SmtpEnableSsl = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl)), - SmtpUseDefaultCredentials = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials)), - DefaultFromAddress = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromAddress), - DefaultFromDisplayName = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName), - }; - - if (CurrentTenant.IsAvailable) - { - settingsDto.SmtpHost = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Host, CurrentTenant.GetId(), false); - settingsDto.SmtpUserName = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.UserName, CurrentTenant.GetId(), false); - settingsDto.SmtpPassword = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Password, CurrentTenant.GetId(), false); - settingsDto.SmtpDomain = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Domain, CurrentTenant.GetId(), false); - } + SmtpHost = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Host), + SmtpPort = Convert.ToInt32(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Port)), + SmtpUserName = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UserName), + SmtpPassword = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Password), + SmtpDomain = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Domain), + SmtpEnableSsl = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl)), + SmtpUseDefaultCredentials = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials)), + DefaultFromAddress = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromAddress), + DefaultFromDisplayName = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName), + }; - return settingsDto; + if (CurrentTenant.IsAvailable) + { + settingsDto.SmtpHost = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Host, CurrentTenant.GetId(), false); + settingsDto.SmtpUserName = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.UserName, CurrentTenant.GetId(), false); + settingsDto.SmtpPassword = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Password, CurrentTenant.GetId(), false); + settingsDto.SmtpDomain = await SettingManager.GetOrNullForTenantAsync(EmailSettingNames.Smtp.Domain, CurrentTenant.GetId(), false); } - public virtual async Task UpdateAsync(UpdateEmailSettingsDto input) - { - await CheckFeatureAsync(); + return settingsDto; + } - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Host, input.SmtpHost); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Port, input.SmtpPort.ToString()); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.UserName, input.SmtpUserName); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Password, input.SmtpPassword); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Domain, input.SmtpDomain); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString()); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString().ToLowerInvariant()); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress); - await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName); - } + public virtual async Task UpdateAsync(UpdateEmailSettingsDto input) + { + await CheckFeatureAsync(); + + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Host, input.SmtpHost); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Port, input.SmtpPort.ToString()); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.UserName, input.SmtpUserName); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Password, input.SmtpPassword); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.Domain, input.SmtpDomain); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString()); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString().ToLowerInvariant()); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress); + await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName); + } - protected virtual async Task CheckFeatureAsync() + protected virtual async Task CheckFeatureAsync() + { + await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.Enable); + if (CurrentTenant.IsAvailable) { - await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.Enable); - if (CurrentTenant.IsAvailable) - { - await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); - } + await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); } } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/SettingManagementAppServiceBase.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/SettingManagementAppServiceBase.cs index 7f31e962c7..35af07643d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/SettingManagementAppServiceBase.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/SettingManagementAppServiceBase.cs @@ -1,14 +1,13 @@ using Volo.Abp.Application.Services; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public abstract class SettingManagementAppServiceBase : ApplicationService { - public abstract class SettingManagementAppServiceBase : ApplicationService + protected SettingManagementAppServiceBase() { - protected SettingManagementAppServiceBase() - { - ObjectMapperContext = typeof(AbpSettingManagementApplicationModule); - LocalizationResource = typeof(AbpSettingManagementResource); - } + ObjectMapperContext = typeof(AbpSettingManagementApplicationModule); + LocalizationResource = typeof(AbpSettingManagementResource); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/AbpSettingManagementBlazorServerModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/AbpSettingManagementBlazorServerModule.cs index 77a5688a67..117e4ab367 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/AbpSettingManagementBlazorServerModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.Server/AbpSettingManagementBlazorServerModule.cs @@ -1,13 +1,12 @@ using Volo.Abp.AspNetCore.Components.Server.Theming; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement.Blazor.Server +namespace Volo.Abp.SettingManagement.Blazor.Server; + +[DependsOn( + typeof(AbpSettingManagementBlazorModule), + typeof(AbpAspNetCoreComponentsServerThemingModule) +)] +public class AbpSettingManagementBlazorServerModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementBlazorModule), - typeof(AbpAspNetCoreComponentsServerThemingModule) - )] - public class AbpSettingManagementBlazorServerModule : AbpModule - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.WebAssembly/AbpSettingManagementBlazorWebAssemblyModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.WebAssembly/AbpSettingManagementBlazorWebAssemblyModule.cs index a1b1ad08b5..e92cd5ec15 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.WebAssembly/AbpSettingManagementBlazorWebAssemblyModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor.WebAssembly/AbpSettingManagementBlazorWebAssemblyModule.cs @@ -1,14 +1,13 @@ using Volo.Abp.AspNetCore.Components.WebAssembly.Theming; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement.Blazor.WebAssembly +namespace Volo.Abp.SettingManagement.Blazor.WebAssembly; + +[DependsOn( + typeof(AbpSettingManagementBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyThemingModule), + typeof(AbpSettingManagementHttpApiClientModule) +)] +public class AbpSettingManagementBlazorWebAssemblyModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementBlazorModule), - typeof(AbpAspNetCoreComponentsWebAssemblyThemingModule), - typeof(AbpSettingManagementHttpApiClientModule) - )] - public class AbpSettingManagementBlazorWebAssemblyModule : AbpModule - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/AbpSettingManagementBlazorModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/AbpSettingManagementBlazorModule.cs index 45888f847e..8888df3596 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/AbpSettingManagementBlazorModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/AbpSettingManagementBlazorModule.cs @@ -7,38 +7,37 @@ using Volo.Abp.SettingManagement.Blazor.Menus; using Volo.Abp.SettingManagement.Blazor.Settings; using Volo.Abp.UI.Navigation; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +[DependsOn( + typeof(AbpAutoMapperModule), + typeof(AbpAspNetCoreComponentsWebThemingModule), + typeof(AbpSettingManagementApplicationContractsModule) +)] +public class AbpSettingManagementBlazorModule : AbpModule { - [DependsOn( - typeof(AbpAutoMapperModule), - typeof(AbpAspNetCoreComponentsWebThemingModule), - typeof(AbpSettingManagementApplicationContractsModule) - )] - public class AbpSettingManagementBlazorModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAutoMapperObjectMapper(); + context.Services.AddAutoMapperObjectMapper(); - Configure(options => - { - options.AddProfile(validate: true); - }); + Configure(options => + { + options.AddProfile(validate: true); + }); - Configure(options => - { - options.MenuContributors.Add(new SettingManagementMenuContributor()); - }); + Configure(options => + { + options.MenuContributors.Add(new SettingManagementMenuContributor()); + }); - Configure(options => - { - options.AdditionalAssemblies.Add(typeof(AbpSettingManagementBlazorModule).Assembly); - }); + Configure(options => + { + options.AdditionalAssemblies.Add(typeof(AbpSettingManagementBlazorModule).Assembly); + }); - Configure(options => - { - options.Contributors.Add(new EmailingPageContributor()); - }); - } + Configure(options => + { + options.Contributors.Add(new EmailingPageContributor()); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/ISettingComponentContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/ISettingComponentContributor.cs index 19e8abb562..450ee74c8b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/ISettingComponentContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/ISettingComponentContributor.cs @@ -1,11 +1,10 @@ using System.Threading.Tasks; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +public interface ISettingComponentContributor { - public interface ISettingComponentContributor - { - Task ConfigureAsync(SettingComponentCreationContext context); + Task ConfigureAsync(SettingComponentCreationContext context); - Task CheckPermissionsAsync(SettingComponentCreationContext context); - } -} \ No newline at end of file + Task CheckPermissionsAsync(SettingComponentCreationContext context); +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs index 29288a1bd8..3f1f254e9b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs @@ -6,59 +6,58 @@ using Volo.Abp.Features; using Volo.Abp.SettingManagement.Localization; using Volo.Abp.UI.Navigation; -namespace Volo.Abp.SettingManagement.Blazor.Menus +namespace Volo.Abp.SettingManagement.Blazor.Menus; + +public class SettingManagementMenuContributor : IMenuContributor { - public class SettingManagementMenuContributor : IMenuContributor + public async Task ConfigureMenuAsync(MenuConfigurationContext context) { - public async Task ConfigureMenuAsync(MenuConfigurationContext context) + if (context.Menu.Name == StandardMenus.Main) { - if (context.Menu.Name == StandardMenus.Main) - { - await ConfigureMainMenuAsync(context); - } + await ConfigureMainMenuAsync(context); } + } - private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) + private async Task ConfigureMainMenuAsync(MenuConfigurationContext context) + { + var settingManagementPageOptions = context.ServiceProvider.GetRequiredService>().Value; + var settingPageCreationContext = new SettingComponentCreationContext(context.ServiceProvider); + if (!settingManagementPageOptions.Contributors.Any() || + !(await CheckAnyOfPagePermissionsGranted(settingManagementPageOptions, settingPageCreationContext)) + ) { - var settingManagementPageOptions = context.ServiceProvider.GetRequiredService>().Value; - var settingPageCreationContext = new SettingComponentCreationContext(context.ServiceProvider); - if (!settingManagementPageOptions.Contributors.Any() || - !(await CheckAnyOfPagePermissionsGranted(settingManagementPageOptions, settingPageCreationContext)) - ) - { - return; - } + return; + } - var l = context.GetLocalizer(); + var l = context.GetLocalizer(); - /* This may happen if MVC UI is being used in the same application. - * In this case, we are removing the MVC setting management UI. */ - context.Menu.GetAdministration().TryRemoveMenuItem(SettingManagementMenus.GroupName); + /* This may happen if MVC UI is being used in the same application. + * In this case, we are removing the MVC setting management UI. */ + context.Menu.GetAdministration().TryRemoveMenuItem(SettingManagementMenus.GroupName); - context.Menu - .GetAdministration() - .AddItem( - new ApplicationMenuItem( - SettingManagementMenus.GroupName, - l["Settings"], - "~/setting-management", - icon: "fa fa-cog" - ).RequireFeatures(SettingManagementFeatures.Enable) - ); - } + context.Menu + .GetAdministration() + .AddItem( + new ApplicationMenuItem( + SettingManagementMenus.GroupName, + l["Settings"], + "~/setting-management", + icon: "fa fa-cog" + ).RequireFeatures(SettingManagementFeatures.Enable) + ); + } - protected virtual async Task CheckAnyOfPagePermissionsGranted( - SettingManagementComponentOptions settingManagementComponentOptions, - SettingComponentCreationContext settingComponentCreationContext) + protected virtual async Task CheckAnyOfPagePermissionsGranted( + SettingManagementComponentOptions settingManagementComponentOptions, + SettingComponentCreationContext settingComponentCreationContext) + { + foreach (var contributor in settingManagementComponentOptions.Contributors) { - foreach (var contributor in settingManagementComponentOptions.Contributors) + if (await contributor.CheckPermissionsAsync(settingComponentCreationContext)) { - if (await contributor.CheckPermissionsAsync(settingComponentCreationContext)) - { - return true; - } + return true; } - return false; } + return false; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenus.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenus.cs index 4e109b8d32..d532510a61 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenus.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenus.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.SettingManagement.Blazor.Menus +namespace Volo.Abp.SettingManagement.Blazor.Menus; + +public class SettingManagementMenus { - public class SettingManagementMenus - { - public const string GroupName = "SettingManagement"; - } -} \ No newline at end of file + public const string GroupName = "SettingManagement"; +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs index 7ad7058d3f..74f809fdfa 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs @@ -6,55 +6,54 @@ using Volo.Abp.AspNetCore.Components.Messages; using Volo.Abp.AspNetCore.Components.Web.Configuration; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.EmailSettingGroup +namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.EmailSettingGroup; + +public partial class EmailSettingGroupViewComponent { - public partial class EmailSettingGroupViewComponent - { - [Inject] - protected IEmailSettingsAppService EmailSettingsAppService { get; set; } - - [Inject] - private ICurrentApplicationConfigurationCacheResetService CurrentApplicationConfigurationCacheResetService { get; set; } + [Inject] + protected IEmailSettingsAppService EmailSettingsAppService { get; set; } - [Inject] - protected IUiMessageService UiMessageService { get; set; } + [Inject] + private ICurrentApplicationConfigurationCacheResetService CurrentApplicationConfigurationCacheResetService { get; set; } - protected EmailSettingsDto EmailSettings; + [Inject] + protected IUiMessageService UiMessageService { get; set; } - protected Validations IdentitySettingValidation; + protected EmailSettingsDto EmailSettings; - public EmailSettingGroupViewComponent() + protected Validations IdentitySettingValidation; + + public EmailSettingGroupViewComponent() + { + ObjectMapperContext = typeof(AbpSettingManagementBlazorModule); + LocalizationResource = typeof(AbpSettingManagementResource); + } + + protected override async Task OnInitializedAsync() + { + try { - ObjectMapperContext = typeof(AbpSettingManagementBlazorModule); - LocalizationResource = typeof(AbpSettingManagementResource); + EmailSettings = await EmailSettingsAppService.GetAsync(); } - - protected override async Task OnInitializedAsync() + catch (Exception ex) { - try - { - EmailSettings = await EmailSettingsAppService.GetAsync(); - } - catch (Exception ex) - { - await HandleErrorAsync(ex); - } + await HandleErrorAsync(ex); } + } + + protected virtual async Task UpdateSettingsAsync() + { + try + { + await EmailSettingsAppService.UpdateAsync(ObjectMapper.Map(EmailSettings)); + + await CurrentApplicationConfigurationCacheResetService.ResetAsync(); - protected virtual async Task UpdateSettingsAsync() + await UiMessageService.Success(L["SuccessfullySaved"]); + } + catch (Exception ex) { - try - { - await EmailSettingsAppService.UpdateAsync(ObjectMapper.Map(EmailSettings)); - - await CurrentApplicationConfigurationCacheResetService.ResetAsync(); - - await UiMessageService.Success(L["SuccessfullySaved"]); - } - catch (Exception ex) - { - await HandleErrorAsync(ex); - } + await HandleErrorAsync(ex); } } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs index 12da186e5f..fcde862fbd 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs @@ -8,44 +8,43 @@ using Microsoft.Extensions.Options; using Volo.Abp.BlazoriseUI; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement; + +public partial class SettingManagement { - public partial class SettingManagement - { - [Inject] - protected IServiceProvider ServiceProvider { get; set; } + [Inject] + protected IServiceProvider ServiceProvider { get; set; } - protected SettingComponentCreationContext SettingComponentCreationContext { get; set; } + protected SettingComponentCreationContext SettingComponentCreationContext { get; set; } - [Inject] - protected IOptions _options { get; set; } - [Inject] - protected IStringLocalizer L { get; set; } + [Inject] + protected IOptions _options { get; set; } + [Inject] + protected IStringLocalizer L { get; set; } - protected SettingManagementComponentOptions Options => _options.Value; + protected SettingManagementComponentOptions Options => _options.Value; - protected List SettingItemRenders { get; set; } = new List(); + protected List SettingItemRenders { get; set; } = new List(); - protected string SelectedGroup; - protected List BreadcrumbItems = new List(); + protected string SelectedGroup; + protected List BreadcrumbItems = new List(); - protected async override Task OnInitializedAsync() - { - SettingComponentCreationContext = new SettingComponentCreationContext(ServiceProvider); + protected async override Task OnInitializedAsync() + { + SettingComponentCreationContext = new SettingComponentCreationContext(ServiceProvider); - foreach (var contributor in Options.Contributors) - { - await contributor.ConfigureAsync(SettingComponentCreationContext); - } + foreach (var contributor in Options.Contributors) + { + await contributor.ConfigureAsync(SettingComponentCreationContext); + } - SettingItemRenders.Clear(); + SettingItemRenders.Clear(); - SelectedGroup = GetNormalizedString(SettingComponentCreationContext.Groups.First().Id); - } + SelectedGroup = GetNormalizedString(SettingComponentCreationContext.Groups.First().Id); + } - protected virtual string GetNormalizedString(string value) - { - return value.Replace('.', '_'); - } + protected virtual string GetNormalizedString(string value) + { + return value.Replace('.', '_'); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs index 5898ace730..dfba0564f2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs @@ -2,19 +2,18 @@ using System.Collections.Generic; using Volo.Abp.DependencyInjection; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +public class SettingComponentCreationContext : IServiceProviderAccessor { - public class SettingComponentCreationContext : IServiceProviderAccessor - { - public IServiceProvider ServiceProvider { get; } + public IServiceProvider ServiceProvider { get; } - public List Groups { get; } + public List Groups { get; } - public SettingComponentCreationContext(IServiceProvider serviceProvider) - { - ServiceProvider = serviceProvider; + public SettingComponentCreationContext(IServiceProvider serviceProvider) + { + ServiceProvider = serviceProvider; - Groups = new List(); - } + Groups = new List(); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs index 22b59d83e1..bf4bbf2a22 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs @@ -1,39 +1,35 @@ using System; using JetBrains.Annotations; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +public class SettingComponentGroup { - public class SettingComponentGroup - { - public string Id - { - get => _id; - set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id)); - } - private string _id; + public string Id { + get => _id; + set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id)); + } + private string _id; - public string DisplayName - { - get => _displayName; - set => _displayName = Check.NotNullOrWhiteSpace(value, nameof(DisplayName)); - } - private string _displayName; + public string DisplayName { + get => _displayName; + set => _displayName = Check.NotNullOrWhiteSpace(value, nameof(DisplayName)); + } + private string _displayName; - public Type ComponentType - { - get => _componentType; - set => _componentType = Check.NotNull(value, nameof(ComponentType)); - } - private Type _componentType; + public Type ComponentType { + get => _componentType; + set => _componentType = Check.NotNull(value, nameof(ComponentType)); + } + private Type _componentType; - public object Parameter { get; set; } + public object Parameter { get; set; } - public SettingComponentGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null) - { - Id = id; - DisplayName = displayName; - ComponentType = componentType; - Parameter = parameter; - } + public SettingComponentGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null) + { + Id = id; + DisplayName = displayName; + ComponentType = componentType; + Parameter = parameter; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs index 0df1a1d43b..d5309e0aff 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs @@ -1,12 +1,11 @@ using AutoMapper; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +public class SettingManagementBlazorAutoMapperProfile : Profile { - public class SettingManagementBlazorAutoMapperProfile : Profile + public SettingManagementBlazorAutoMapperProfile() { - public SettingManagementBlazorAutoMapperProfile() - { - CreateMap(); - } + CreateMap(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementComponentOptions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementComponentOptions.cs index e49fe4aa2d..885f0666f7 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementComponentOptions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementComponentOptions.cs @@ -1,14 +1,13 @@ using System.Collections.Generic; -namespace Volo.Abp.SettingManagement.Blazor +namespace Volo.Abp.SettingManagement.Blazor; + +public class SettingManagementComponentOptions { - public class SettingManagementComponentOptions - { - public List Contributors { get; } + public List Contributors { get; } - public SettingManagementComponentOptions() - { - Contributors = new List(); - } + public SettingManagementComponentOptions() + { + Contributors = new List(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs index e0336bda4d..c21a5a7467 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs @@ -7,57 +7,56 @@ using Volo.Abp.MultiTenancy; using Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.EmailSettingGroup; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement.Blazor.Settings +namespace Volo.Abp.SettingManagement.Blazor.Settings; + +public class EmailingPageContributor : ISettingComponentContributor { - public class EmailingPageContributor: ISettingComponentContributor + public async Task ConfigureAsync(SettingComponentCreationContext context) { - public async Task ConfigureAsync(SettingComponentCreationContext context) + if (!await CheckPermissionsInternalAsync(context)) { - if (!await CheckPermissionsInternalAsync(context)) - { - return; - } - - var l = context.ServiceProvider.GetRequiredService>(); - context.Groups.Add( - new SettingComponentGroup( - "Volo.Abp.SettingManagement", - l["Menu:Emailing"], - typeof(EmailSettingGroupViewComponent) - ) - ); + return; } - public async Task CheckPermissionsAsync(SettingComponentCreationContext context) + var l = context.ServiceProvider.GetRequiredService>(); + context.Groups.Add( + new SettingComponentGroup( + "Volo.Abp.SettingManagement", + l["Menu:Emailing"], + typeof(EmailSettingGroupViewComponent) + ) + ); + } + + public async Task CheckPermissionsAsync(SettingComponentCreationContext context) + { + return await CheckPermissionsInternalAsync(context); + } + + private async Task CheckPermissionsInternalAsync(SettingComponentCreationContext context) + { + if (!await CheckFeatureAsync(context)) { - return await CheckPermissionsInternalAsync(context); + return false; } - private async Task CheckPermissionsInternalAsync(SettingComponentCreationContext context) - { - if (!await CheckFeatureAsync(context)) - { - return false; - } + var authorizationService = context.ServiceProvider.GetRequiredService(); - var authorizationService = context.ServiceProvider.GetRequiredService(); + return await authorizationService.IsGrantedAsync(SettingManagementPermissions.Emailing); + } - return await authorizationService.IsGrantedAsync(SettingManagementPermissions.Emailing); - } + private async Task CheckFeatureAsync(SettingComponentCreationContext context) + { + var currentTenant = context.ServiceProvider.GetRequiredService(); - private async Task CheckFeatureAsync(SettingComponentCreationContext context) + if (!currentTenant.IsAvailable) { - var currentTenant = context.ServiceProvider.GetRequiredService(); - - if (!currentTenant.IsAvailable) - { - return true; - } + return true; + } - var featureCheck = context.ServiceProvider.GetRequiredService(); + var featureCheck = context.ServiceProvider.GetRequiredService(); - return await featureCheck.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); + return await featureCheck.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); - } } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs index 0db97f0c6a..012133e10b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/AbpSettingManagementDomainSharedModule.cs @@ -5,26 +5,25 @@ using Volo.Abp.SettingManagement.Localization; using Volo.Abp.Validation; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn(typeof(AbpLocalizationModule), + typeof(AbpValidationModule), + typeof(AbpFeaturesModule))] +public class AbpSettingManagementDomainSharedModule : AbpModule { - [DependsOn(typeof(AbpLocalizationModule), - typeof(AbpValidationModule), - typeof(AbpFeaturesModule))] - public class AbpSettingManagementDomainSharedModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); + options.FileSets.AddEmbedded(); + }); - Configure(options => - { - options.Resources - .Add("en") - .AddVirtualJson("/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement"); - }); - } + Configure(options => + { + options.Resources + .Add("en") + .AddVirtualJson("/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement"); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/AbpSettingManagementResource.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/AbpSettingManagementResource.cs index a89f749e4c..2d1e85052f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/AbpSettingManagementResource.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/AbpSettingManagementResource.cs @@ -1,10 +1,9 @@ using Volo.Abp.Localization; -namespace Volo.Abp.SettingManagement.Localization +namespace Volo.Abp.SettingManagement.Localization; + +[LocalizationResourceName("AbpSettingManagement")] +public class AbpSettingManagementResource { - [LocalizationResourceName("AbpSettingManagement")] - public class AbpSettingManagementResource - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingConsts.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingConsts.cs index e23a0e39a5..466232997e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingConsts.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingConsts.cs @@ -1,27 +1,26 @@ -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class SettingConsts { - public static class SettingConsts - { - /// - /// Default value: 128 - /// - public static int MaxNameLength { get; set; } = 128; - - /// - /// Default value: 2048 - /// - public static int MaxValueLength { get; set; } = 2048; - - public static int MaxValueLengthValue { get; set; } = MaxValueLength; - - /// - /// Default value: 64 - /// - public static int MaxProviderNameLength { get; set; } = 64; - - /// - /// Default value: 64 - /// - public static int MaxProviderKeyLength { get; set; } = 64; - } + /// + /// Default value: 128 + /// + public static int MaxNameLength { get; set; } = 128; + + /// + /// Default value: 2048 + /// + public static int MaxValueLength { get; set; } = 2048; + + public static int MaxValueLengthValue { get; set; } = MaxValueLength; + + /// + /// Default value: 64 + /// + public static int MaxProviderNameLength { get; set; } = 64; + + /// + /// Default value: 64 + /// + public static int MaxProviderKeyLength { get; set; } = 64; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs index 80a955bb23..14124803c8 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatureDefinitionProvider.cs @@ -3,34 +3,33 @@ using Volo.Abp.Localization; using Volo.Abp.SettingManagement.Localization; using Volo.Abp.Validation.StringValues; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementFeatureDefinitionProvider : FeatureDefinitionProvider { - public class SettingManagementFeatureDefinitionProvider : FeatureDefinitionProvider + public override void Define(IFeatureDefinitionContext context) { - public override void Define(IFeatureDefinitionContext context) - { - var group = context.AddGroup(SettingManagementFeatures.GroupName, - L("Feature:SettingManagementGroup")); + var group = context.AddGroup(SettingManagementFeatures.GroupName, + L("Feature:SettingManagementGroup")); - var settingEnableFeature = group.AddFeature( - SettingManagementFeatures.Enable, - "true", - L("Feature:SettingManagementEnable"), - L("Feature:SettingManagementEnableDescription"), - new ToggleStringValueType()); + var settingEnableFeature = group.AddFeature( + SettingManagementFeatures.Enable, + "true", + L("Feature:SettingManagementEnable"), + L("Feature:SettingManagementEnableDescription"), + new ToggleStringValueType()); - settingEnableFeature.CreateChild( - SettingManagementFeatures.AllowTenantsToChangeEmailSettings, - "false", - L("Feature:AllowTenantsToChangeEmailSettings"), - L("AllowTenantsToChangeEmailSettingsDescription"), - new ToggleStringValueType(), - isAvailableToHost: false); - } + settingEnableFeature.CreateChild( + SettingManagementFeatures.AllowTenantsToChangeEmailSettings, + "false", + L("Feature:AllowTenantsToChangeEmailSettings"), + L("AllowTenantsToChangeEmailSettingsDescription"), + new ToggleStringValueType(), + isAvailableToHost: false); + } - private static LocalizableString L(string name) - { - return LocalizableString.Create(name); - } + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs index fd7578dc86..e0c91d6435 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/SettingManagementFeatures.cs @@ -1,11 +1,10 @@ -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementFeatures { - public class SettingManagementFeatures - { - public const string GroupName = "SettingManagement"; + public const string GroupName = "SettingManagement"; - public const string Enable = GroupName + ".Enable"; + public const string Enable = GroupName + ".Enable"; - public const string AllowTenantsToChangeEmailSettings = GroupName + ".AllowTenantsToChangeEmailSettings"; - } + public const string AllowTenantsToChangeEmailSettings = GroupName + ".AllowTenantsToChangeEmailSettings"; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDbProperties.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDbProperties.cs index f9b2570186..fa51beee61 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDbProperties.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDbProperties.cs @@ -1,13 +1,12 @@ using Volo.Abp.Data; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class AbpSettingManagementDbProperties { - public static class AbpSettingManagementDbProperties - { - public static string DbTablePrefix { get; set; } = AbpCommonDbProperties.DbTablePrefix; + public static string DbTablePrefix { get; set; } = AbpCommonDbProperties.DbTablePrefix; - public static string DbSchema { get; set; } = AbpCommonDbProperties.DbSchema; + public static string DbSchema { get; set; } = AbpCommonDbProperties.DbSchema; - public const string ConnectionStringName = "AbpSettingManagement"; - } + public const string ConnectionStringName = "AbpSettingManagement"; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs index 64715d6196..c429fa0bba 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/AbpSettingManagementDomainModule.cs @@ -3,26 +3,25 @@ using Volo.Abp.Domain; using Volo.Abp.Modularity; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpSettingsModule), + typeof(AbpDddDomainModule), + typeof(AbpSettingManagementDomainSharedModule), + typeof(AbpCachingModule) + )] +public class AbpSettingManagementDomainModule : AbpModule { - [DependsOn( - typeof(AbpSettingsModule), - typeof(AbpDddDomainModule), - typeof(AbpSettingManagementDomainSharedModule), - typeof(AbpCachingModule) - )] - public class AbpSettingManagementDomainModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { - Configure(options => - { - options.Providers.Add(); - options.Providers.Add(); - options.Providers.Add(); - options.Providers.Add(); - options.Providers.Add(); - }); - } + options.Providers.Add(); + options.Providers.Add(); + options.Providers.Add(); + options.Providers.Add(); + options.Providers.Add(); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationSettingManagementProvider.cs index d742aab4a4..3702095840 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationSettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationSettingManagementProvider.cs @@ -3,32 +3,31 @@ using Microsoft.Extensions.Configuration; using Volo.Abp.DependencyInjection; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class ConfigurationSettingManagementProvider : ISettingManagementProvider, ITransientDependency { - public class ConfigurationSettingManagementProvider : ISettingManagementProvider, ITransientDependency - { - public string Name => ConfigurationSettingValueProvider.ProviderName; + public string Name => ConfigurationSettingValueProvider.ProviderName; - protected IConfiguration Configuration { get; } + protected IConfiguration Configuration { get; } - public ConfigurationSettingManagementProvider(IConfiguration configuration) - { - Configuration = configuration; - } + public ConfigurationSettingManagementProvider(IConfiguration configuration) + { + Configuration = configuration; + } - public virtual Task GetOrNullAsync(SettingDefinition setting, string providerKey) - { - return Task.FromResult(Configuration[ConfigurationSettingValueProvider.ConfigurationNamePrefix + setting.Name]); - } + public virtual Task GetOrNullAsync(SettingDefinition setting, string providerKey) + { + return Task.FromResult(Configuration[ConfigurationSettingValueProvider.ConfigurationNamePrefix + setting.Name]); + } - public virtual Task SetAsync(SettingDefinition setting, string value, string providerKey) - { - throw new AbpException($"Can not set a setting value to the application configuration."); - } + public virtual Task SetAsync(SettingDefinition setting, string value, string providerKey) + { + throw new AbpException($"Can not set a setting value to the application configuration."); + } - public virtual Task ClearAsync(SettingDefinition setting, string providerKey) - { - throw new AbpException($"Can not set a setting value to the application configuration."); - } + public virtual Task ClearAsync(SettingDefinition setting, string providerKey) + { + throw new AbpException($"Can not set a setting value to the application configuration."); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationValueSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationValueSettingManagerExtensions.cs index 2c1af4b107..c2b1894b3c 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationValueSettingManagerExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ConfigurationValueSettingManagerExtensions.cs @@ -3,18 +3,17 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class ConfigurationValueSettingManagerExtensions { - public static class ConfigurationValueSettingManagerExtensions + public static Task GetOrNullConfigurationAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) { - public static Task GetOrNullConfigurationAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, ConfigurationSettingValueProvider.ProviderName, null, fallback); - } + return settingManager.GetOrNullAsync(name, ConfigurationSettingValueProvider.ProviderName, null, fallback); + } - public static Task> GetAllConfigurationAsync(this ISettingManager settingManager, bool fallback = true) - { - return settingManager.GetAllAsync(ConfigurationSettingValueProvider.ProviderName, null, fallback); - } + public static Task> GetAllConfigurationAsync(this ISettingManager settingManager, bool fallback = true) + { + return settingManager.GetAllAsync(ConfigurationSettingValueProvider.ProviderName, null, fallback); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs index 0be00126d3..109ad157f7 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider.cs @@ -2,25 +2,24 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class DefaultValueSettingManagementProvider : ISettingManagementProvider, ISingletonDependency { - public class DefaultValueSettingManagementProvider : ISettingManagementProvider, ISingletonDependency - { - public string Name => DefaultValueSettingValueProvider.ProviderName; + public string Name => DefaultValueSettingValueProvider.ProviderName; - public virtual Task GetOrNullAsync(SettingDefinition setting, string providerKey) - { - return Task.FromResult(setting.DefaultValue); - } + public virtual Task GetOrNullAsync(SettingDefinition setting, string providerKey) + { + return Task.FromResult(setting.DefaultValue); + } - public virtual Task SetAsync(SettingDefinition setting, string value, string providerKey) - { - throw new AbpException($"Can not set default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation."); - } + public virtual Task SetAsync(SettingDefinition setting, string value, string providerKey) + { + throw new AbpException($"Can not set default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation."); + } - public virtual Task ClearAsync(SettingDefinition setting, string providerKey) - { - throw new AbpException($"Can not clear default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation."); - } + public virtual Task ClearAsync(SettingDefinition setting, string providerKey) + { + throw new AbpException($"Can not clear default value of a setting. It is only possible while defining the setting in a {typeof(ISettingDefinitionProvider)} implementation."); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs index 20ad176ecc..3062e58452 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/DefaultValueSettingManagerExtensions.cs @@ -3,18 +3,17 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class DefaultValueSettingManagerExtensions { - public static class DefaultValueSettingManagerExtensions + public static Task GetOrNullDefaultAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) { - public static Task GetOrNullDefaultAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, DefaultValueSettingValueProvider.ProviderName, null, fallback); - } + return settingManager.GetOrNullAsync(name, DefaultValueSettingValueProvider.ProviderName, null, fallback); + } - public static Task> GetAllDefaultAsync(this ISettingManager settingManager, bool fallback = true) - { - return settingManager.GetAllAsync(DefaultValueSettingValueProvider.ProviderName, null, fallback); - } + public static Task> GetAllDefaultAsync(this ISettingManager settingManager, bool fallback = true) + { + return settingManager.GetAllAsync(DefaultValueSettingValueProvider.ProviderName, null, fallback); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs index 85201eb39a..d831e5e7eb 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagementProvider.cs @@ -1,21 +1,20 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class GlobalSettingManagementProvider : SettingManagementProvider, ITransientDependency { - public class GlobalSettingManagementProvider : SettingManagementProvider, ITransientDependency - { - public override string Name => GlobalSettingValueProvider.ProviderName; + public override string Name => GlobalSettingValueProvider.ProviderName; - public GlobalSettingManagementProvider(ISettingManagementStore settingManagementStore) - : base(settingManagementStore) - { + public GlobalSettingManagementProvider(ISettingManagementStore settingManagementStore) + : base(settingManagementStore) + { - } + } - protected override string NormalizeProviderKey(string providerKey) - { - return null; - } + protected override string NormalizeProviderKey(string providerKey) + { + return null; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs index e403eb41a3..53f205956a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/GlobalSettingManagerExtensions.cs @@ -3,23 +3,22 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class GlobalSettingManagerExtensions { - public static class GlobalSettingManagerExtensions + public static Task GetOrNullGlobalAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) { - public static Task GetOrNullGlobalAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, GlobalSettingValueProvider.ProviderName, null, fallback); - } + return settingManager.GetOrNullAsync(name, GlobalSettingValueProvider.ProviderName, null, fallback); + } - public static Task> GetAllGlobalAsync(this ISettingManager settingManager, bool fallback = true) - { - return settingManager.GetAllAsync(GlobalSettingValueProvider.ProviderName, null, fallback); - } + public static Task> GetAllGlobalAsync(this ISettingManager settingManager, bool fallback = true) + { + return settingManager.GetAllAsync(GlobalSettingValueProvider.ProviderName, null, fallback); + } - public static Task SetGlobalAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value) - { - return settingManager.SetAsync(name, value, GlobalSettingValueProvider.ProviderName, null); - } + public static Task SetGlobalAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value) + { + return settingManager.SetAsync(name, value, GlobalSettingValueProvider.ProviderName, null); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs index 827b0ff851..df6c82416d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementProvider.cs @@ -2,16 +2,15 @@ using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public interface ISettingManagementProvider { - public interface ISettingManagementProvider - { - string Name { get; } + string Name { get; } - Task GetOrNullAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey); + Task GetOrNullAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey); - Task SetAsync([NotNull] SettingDefinition setting, [NotNull] string value, [CanBeNull] string providerKey); + Task SetAsync([NotNull] SettingDefinition setting, [NotNull] string value, [CanBeNull] string providerKey); - Task ClearAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey); - } + Task ClearAsync([NotNull] SettingDefinition setting, [CanBeNull] string providerKey); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs index 3c979039bb..52085c3458 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManagementStore.cs @@ -2,18 +2,17 @@ using System.Threading.Tasks; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public interface ISettingManagementStore { - public interface ISettingManagementStore - { - Task GetOrNullAsync(string name, string providerName, string providerKey); + Task GetOrNullAsync(string name, string providerName, string providerKey); - Task> GetListAsync(string providerName, string providerKey); + Task> GetListAsync(string providerName, string providerKey); - Task> GetListAsync(string[] names, string providerName, string providerKey); + Task> GetListAsync(string[] names, string providerName, string providerKey); - Task SetAsync(string name, string value, string providerName, string providerKey); + Task SetAsync(string name, string value, string providerName, string providerKey); - Task DeleteAsync(string name, string providerName, string providerKey); - } + Task DeleteAsync(string name, string providerName, string providerKey); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs index 77ae59e664..a907ca2d66 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingManager.cs @@ -3,14 +3,13 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public interface ISettingManager { - public interface ISettingManager - { - Task GetOrNullAsync([NotNull]string name, [NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); + Task GetOrNullAsync([NotNull] string name, [NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); - Task> GetAllAsync([NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); + Task> GetAllAsync([NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); - Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string providerName, [CanBeNull] string providerKey, bool forceToSet = false); - } -} \ No newline at end of file + Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string providerName, [CanBeNull] string providerKey, bool forceToSet = false); +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs index ee8cfa64a8..68c77abed3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/ISettingRepository.cs @@ -4,25 +4,24 @@ using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public interface ISettingRepository : IBasicRepository { - public interface ISettingRepository : IBasicRepository - { - Task FindAsync( - string name, - string providerName, - string providerKey, - CancellationToken cancellationToken = default); + Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> GetListAsync( - string providerName, - string providerKey, - CancellationToken cancellationToken = default); + Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default); - Task> GetListAsync( - string[] names, - string providerName, - string providerKey, - CancellationToken cancellationToken = default); - } + Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/Setting.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/Setting.cs index 49c2769237..8ad213cdac 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/Setting.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/Setting.cs @@ -2,47 +2,46 @@ using JetBrains.Annotations; using Volo.Abp.Domain.Entities; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class Setting : Entity, IAggregateRoot { - public class Setting : Entity, IAggregateRoot + [NotNull] + public virtual string Name { get; protected set; } + + [NotNull] + public virtual string Value { get; internal set; } + + [CanBeNull] + public virtual string ProviderName { get; protected set; } + + [CanBeNull] + public virtual string ProviderKey { get; protected set; } + + protected Setting() + { + + } + + public Setting( + Guid id, + [NotNull] string name, + [NotNull] string value, + [CanBeNull] string providerName = null, + [CanBeNull] string providerKey = null) + { + Check.NotNull(name, nameof(name)); + Check.NotNull(value, nameof(value)); + + Id = id; + Name = name; + Value = value; + ProviderName = providerName; + ProviderKey = providerKey; + } + + public override string ToString() { - [NotNull] - public virtual string Name { get; protected set; } - - [NotNull] - public virtual string Value { get; internal set; } - - [CanBeNull] - public virtual string ProviderName { get; protected set; } - - [CanBeNull] - public virtual string ProviderKey { get; protected set; } - - protected Setting() - { - - } - - public Setting( - Guid id, - [NotNull] string name, - [NotNull] string value, - [CanBeNull] string providerName = null, - [CanBeNull] string providerKey = null) - { - Check.NotNull(name, nameof(name)); - Check.NotNull(value, nameof(value)); - - Id = id; - Name = name; - Value = value; - ProviderName = providerName; - ProviderKey = providerKey; - } - - public override string ToString() - { - return $"{base.ToString()}, Name = {Name}, Value = {Value}, ProviderName = {ProviderName}, ProviderKey = {ProviderKey}"; - } + return $"{base.ToString()}, Name = {Name}, Value = {Value}, ProviderName = {ProviderName}, ProviderKey = {ProviderKey}"; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItem.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItem.cs index 3b6b968e19..a77bdc6771 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItem.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItem.cs @@ -3,35 +3,34 @@ using System.Linq; using Volo.Abp.MultiTenancy; using Volo.Abp.Text.Formatting; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[Serializable] +[IgnoreMultiTenancy] +public class SettingCacheItem { - [Serializable] - [IgnoreMultiTenancy] - public class SettingCacheItem - { - private const string CacheKeyFormat = "pn:{0},pk:{1},n:{2}"; + private const string CacheKeyFormat = "pn:{0},pk:{1},n:{2}"; - public string Value { get; set; } + public string Value { get; set; } - public SettingCacheItem() - { + public SettingCacheItem() + { - } + } - public SettingCacheItem(string value) - { - Value = value; - } + public SettingCacheItem(string value) + { + Value = value; + } - public static string CalculateCacheKey(string name, string providerName, string providerKey) - { - return string.Format(CacheKeyFormat, providerName, providerKey, name); - } + public static string CalculateCacheKey(string name, string providerName, string providerKey) + { + return string.Format(CacheKeyFormat, providerName, providerKey, name); + } - public static string GetSettingNameFormCacheKeyOrNull(string cacheKey) - { - var result = FormattedStringValueExtracter.Extract(cacheKey, CacheKeyFormat, true); - return result.IsMatch ? result.Matches.Last().Value : null; - } + public static string GetSettingNameFormCacheKeyOrNull(string cacheKey) + { + var result = FormattedStringValueExtracter.Extract(cacheKey, CacheKeyFormat, true); + return result.IsMatch ? result.Matches.Last().Value : null; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItemInvalidator.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItemInvalidator.cs index 95a6589d9a..8ef7260024 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItemInvalidator.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingCacheItemInvalidator.cs @@ -4,31 +4,30 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events; using Volo.Abp.EventBus; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingCacheItemInvalidator : ILocalEventHandler>, ITransientDependency { - public class SettingCacheItemInvalidator : ILocalEventHandler>, ITransientDependency - { - protected IDistributedCache Cache { get; } + protected IDistributedCache Cache { get; } - public SettingCacheItemInvalidator(IDistributedCache cache) - { - Cache = cache; - } + public SettingCacheItemInvalidator(IDistributedCache cache) + { + Cache = cache; + } - public virtual async Task HandleEventAsync(EntityChangedEventData eventData) - { - var cacheKey = CalculateCacheKey( - eventData.Entity.Name, - eventData.Entity.ProviderName, - eventData.Entity.ProviderKey - ); + public virtual async Task HandleEventAsync(EntityChangedEventData eventData) + { + var cacheKey = CalculateCacheKey( + eventData.Entity.Name, + eventData.Entity.ProviderName, + eventData.Entity.ProviderKey + ); - await Cache.RemoveAsync(cacheKey, considerUow: true); - } + await Cache.RemoveAsync(cacheKey, considerUow: true); + } - protected virtual string CalculateCacheKey(string name, string providerName, string providerKey) - { - return SettingCacheItem.CalculateCacheKey(name, providerName, providerKey); - } + protected virtual string CalculateCacheKey(string name, string providerName, string providerKey) + { + return SettingCacheItem.CalculateCacheKey(name, providerName, providerKey); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs index 06ced8e8a8..6a1a66d3cb 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementOptions.cs @@ -1,14 +1,13 @@ using Volo.Abp.Collections; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementOptions { - public class SettingManagementOptions - { - public ITypeList Providers { get; } + public ITypeList Providers { get; } - public SettingManagementOptions() - { - Providers = new TypeList(); - } + public SettingManagementOptions() + { + Providers = new TypeList(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs index 460a9f02f5..9c61e6518d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementProvider.cs @@ -1,38 +1,37 @@ using System.Threading.Tasks; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public abstract class SettingManagementProvider : ISettingManagementProvider { - public abstract class SettingManagementProvider : ISettingManagementProvider + public abstract string Name { get; } + + //TODO: Rename to Store + protected ISettingManagementStore SettingManagementStore { get; } + + protected SettingManagementProvider(ISettingManagementStore settingManagementStore) + { + SettingManagementStore = settingManagementStore; + } + + public virtual async Task GetOrNullAsync(SettingDefinition setting, string providerKey) + { + return await SettingManagementStore.GetOrNullAsync(setting.Name, Name, NormalizeProviderKey(providerKey)); + } + + public virtual async Task SetAsync(SettingDefinition setting, string value, string providerKey) + { + await SettingManagementStore.SetAsync(setting.Name, value, Name, NormalizeProviderKey(providerKey)); + } + + public virtual async Task ClearAsync(SettingDefinition setting, string providerKey) + { + await SettingManagementStore.DeleteAsync(setting.Name, Name, NormalizeProviderKey(providerKey)); + } + + protected virtual string NormalizeProviderKey(string providerKey) { - public abstract string Name { get; } - - //TODO: Rename to Store - protected ISettingManagementStore SettingManagementStore { get; } - - protected SettingManagementProvider(ISettingManagementStore settingManagementStore) - { - SettingManagementStore = settingManagementStore; - } - - public virtual async Task GetOrNullAsync(SettingDefinition setting, string providerKey) - { - return await SettingManagementStore.GetOrNullAsync(setting.Name, Name, NormalizeProviderKey(providerKey)); - } - - public virtual async Task SetAsync(SettingDefinition setting, string value, string providerKey) - { - await SettingManagementStore.SetAsync(setting.Name, value, Name, NormalizeProviderKey(providerKey)); - } - - public virtual async Task ClearAsync(SettingDefinition setting, string providerKey) - { - await SettingManagementStore.DeleteAsync(setting.Name, Name, NormalizeProviderKey(providerKey)); - } - - protected virtual string NormalizeProviderKey(string providerKey) - { - return providerKey; - } + return providerKey; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs index 536bbaa532..90cfdd9122 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs @@ -7,208 +7,207 @@ using Volo.Abp.Guids; using Volo.Abp.Settings; using Volo.Abp.Uow; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementStore : ISettingManagementStore, ITransientDependency { - public class SettingManagementStore : ISettingManagementStore, ITransientDependency + protected IDistributedCache Cache { get; } + protected ISettingDefinitionManager SettingDefinitionManager { get; } + protected ISettingRepository SettingRepository { get; } + protected IGuidGenerator GuidGenerator { get; } + + public SettingManagementStore( + ISettingRepository settingRepository, + IGuidGenerator guidGenerator, + IDistributedCache cache, + ISettingDefinitionManager settingDefinitionManager) { - protected IDistributedCache Cache { get; } - protected ISettingDefinitionManager SettingDefinitionManager { get; } - protected ISettingRepository SettingRepository { get; } - protected IGuidGenerator GuidGenerator { get; } - - public SettingManagementStore( - ISettingRepository settingRepository, - IGuidGenerator guidGenerator, - IDistributedCache cache, - ISettingDefinitionManager settingDefinitionManager) + SettingRepository = settingRepository; + GuidGenerator = guidGenerator; + Cache = cache; + SettingDefinitionManager = settingDefinitionManager; + } + + [UnitOfWork] + public virtual async Task GetOrNullAsync(string name, string providerName, string providerKey) + { + return (await GetCacheItemAsync(name, providerName, providerKey)).Value; + } + + [UnitOfWork] + public virtual async Task SetAsync(string name, string value, string providerName, string providerKey) + { + var setting = await SettingRepository.FindAsync(name, providerName, providerKey); + if (setting == null) { - SettingRepository = settingRepository; - GuidGenerator = guidGenerator; - Cache = cache; - SettingDefinitionManager = settingDefinitionManager; + setting = new Setting(GuidGenerator.Create(), name, value, providerName, providerKey); + await SettingRepository.InsertAsync(setting); } - - [UnitOfWork] - public virtual async Task GetOrNullAsync(string name, string providerName, string providerKey) + else { - return (await GetCacheItemAsync(name, providerName, providerKey)).Value; + setting.Value = value; + await SettingRepository.UpdateAsync(setting); } - [UnitOfWork] - public virtual async Task SetAsync(string name, string value, string providerName, string providerKey) - { - var setting = await SettingRepository.FindAsync(name, providerName, providerKey); - if (setting == null) - { - setting = new Setting(GuidGenerator.Create(), name, value, providerName, providerKey); - await SettingRepository.InsertAsync(setting); - } - else - { - setting.Value = value; - await SettingRepository.UpdateAsync(setting); - } + await Cache.SetAsync(CalculateCacheKey(name, providerName, providerKey), new SettingCacheItem(setting?.Value), considerUow: true); + } - await Cache.SetAsync(CalculateCacheKey(name, providerName, providerKey), new SettingCacheItem(setting?.Value), considerUow: true); - } + public virtual async Task> GetListAsync(string providerName, string providerKey) + { + var settings = await SettingRepository.GetListAsync(providerName, providerKey); + return settings.Select(s => new SettingValue(s.Name, s.Value)).ToList(); + } - public virtual async Task> GetListAsync(string providerName, string providerKey) + [UnitOfWork] + public virtual async Task DeleteAsync(string name, string providerName, string providerKey) + { + var setting = await SettingRepository.FindAsync(name, providerName, providerKey); + if (setting != null) { - var settings = await SettingRepository.GetListAsync(providerName, providerKey); - return settings.Select(s => new SettingValue(s.Name, s.Value)).ToList(); + await SettingRepository.DeleteAsync(setting); + await Cache.RemoveAsync(CalculateCacheKey(name, providerName, providerKey), considerUow: true); } + } + + protected virtual async Task GetCacheItemAsync(string name, string providerName, string providerKey) + { + var cacheKey = CalculateCacheKey(name, providerName, providerKey); + var cacheItem = await Cache.GetAsync(cacheKey, considerUow: true); - [UnitOfWork] - public virtual async Task DeleteAsync(string name, string providerName, string providerKey) + if (cacheItem != null) { - var setting = await SettingRepository.FindAsync(name, providerName, providerKey); - if (setting != null) - { - await SettingRepository.DeleteAsync(setting); - await Cache.RemoveAsync(CalculateCacheKey(name, providerName, providerKey), considerUow: true); - } + return cacheItem; } - protected virtual async Task GetCacheItemAsync(string name, string providerName, string providerKey) - { - var cacheKey = CalculateCacheKey(name, providerName, providerKey); - var cacheItem = await Cache.GetAsync(cacheKey, considerUow: true); + cacheItem = new SettingCacheItem(null); - if (cacheItem != null) - { - return cacheItem; - } + await SetCacheItemsAsync(providerName, providerKey, name, cacheItem); - cacheItem = new SettingCacheItem(null); + return cacheItem; + } - await SetCacheItemsAsync(providerName, providerKey, name, cacheItem); + private async Task SetCacheItemsAsync( + string providerName, + string providerKey, + string currentName, + SettingCacheItem currentCacheItem) + { + var settingDefinitions = SettingDefinitionManager.GetAll(); + var settingsDictionary = (await SettingRepository.GetListAsync(providerName, providerKey)) + .ToDictionary(s => s.Name, s => s.Value); - return cacheItem; - } + var cacheItems = new List>(); - private async Task SetCacheItemsAsync( - string providerName, - string providerKey, - string currentName, - SettingCacheItem currentCacheItem) + foreach (var settingDefinition in settingDefinitions) { - var settingDefinitions = SettingDefinitionManager.GetAll(); - var settingsDictionary = (await SettingRepository.GetListAsync(providerName, providerKey)) - .ToDictionary(s => s.Name, s => s.Value); + var settingValue = settingsDictionary.GetOrDefault(settingDefinition.Name); - var cacheItems = new List>(); + cacheItems.Add( + new KeyValuePair( + CalculateCacheKey(settingDefinition.Name, providerName, providerKey), + new SettingCacheItem(settingValue) + ) + ); - foreach (var settingDefinition in settingDefinitions) + if (settingDefinition.Name == currentName) { - var settingValue = settingsDictionary.GetOrDefault(settingDefinition.Name); - - cacheItems.Add( - new KeyValuePair( - CalculateCacheKey(settingDefinition.Name, providerName, providerKey), - new SettingCacheItem(settingValue) - ) - ); - - if (settingDefinition.Name == currentName) - { - currentCacheItem.Value = settingValue; - } + currentCacheItem.Value = settingValue; } - - await Cache.SetManyAsync(cacheItems, considerUow: true); } - [UnitOfWork] - public async Task> GetListAsync(string[] names, string providerName, string providerKey) - { - Check.NotNullOrEmpty(names, nameof(names)); - - var result = new List(); + await Cache.SetManyAsync(cacheItems, considerUow: true); + } - if (names.Length == 1) - { - var name = names.First(); - result.Add(new SettingValue(name, (await GetCacheItemAsync(name, providerName, providerKey)).Value)); - return result; - } + [UnitOfWork] + public async Task> GetListAsync(string[] names, string providerName, string providerKey) + { + Check.NotNullOrEmpty(names, nameof(names)); - var cacheItems = await GetCacheItemsAsync(names, providerName, providerKey); - foreach (var item in cacheItems) - { - result.Add(new SettingValue(GetSettingNameFormCacheKeyOrNull(item.Key), item.Value?.Value)); - } + var result = new List(); + if (names.Length == 1) + { + var name = names.First(); + result.Add(new SettingValue(name, (await GetCacheItemAsync(name, providerName, providerKey)).Value)); return result; } - protected virtual async Task>> GetCacheItemsAsync(string[] names, string providerName, string providerKey) + var cacheItems = await GetCacheItemsAsync(names, providerName, providerKey); + foreach (var item in cacheItems) { - var cacheKeys = names.Select(x => CalculateCacheKey(x, providerName, providerKey)).ToList(); + result.Add(new SettingValue(GetSettingNameFormCacheKeyOrNull(item.Key), item.Value?.Value)); + } - var cacheItems = (await Cache.GetManyAsync(cacheKeys, considerUow: true)).ToList(); + return result; + } - if (cacheItems.All(x => x.Value != null)) - { - return cacheItems; - } + protected virtual async Task>> GetCacheItemsAsync(string[] names, string providerName, string providerKey) + { + var cacheKeys = names.Select(x => CalculateCacheKey(x, providerName, providerKey)).ToList(); - var notCacheKeys = cacheItems.Where(x => x.Value == null).Select(x => x.Key).ToList(); + var cacheItems = (await Cache.GetManyAsync(cacheKeys, considerUow: true)).ToList(); - var newCacheItems = await SetCacheItemsAsync(providerName, providerKey, notCacheKeys); + if (cacheItems.All(x => x.Value != null)) + { + return cacheItems; + } - var result = new List>(); - foreach (var key in cacheKeys) - { - var item = newCacheItems.FirstOrDefault(x => x.Key == key); - if (item.Value == null) - { - item = cacheItems.FirstOrDefault(x => x.Key == key); - } + var notCacheKeys = cacheItems.Where(x => x.Value == null).Select(x => x.Key).ToList(); - result.Add(new KeyValuePair(key, item.Value)); + var newCacheItems = await SetCacheItemsAsync(providerName, providerKey, notCacheKeys); + + var result = new List>(); + foreach (var key in cacheKeys) + { + var item = newCacheItems.FirstOrDefault(x => x.Key == key); + if (item.Value == null) + { + item = cacheItems.FirstOrDefault(x => x.Key == key); } - return result; + result.Add(new KeyValuePair(key, item.Value)); } - private async Task>> SetCacheItemsAsync( - string providerName, - string providerKey, - List notCacheKeys) - { - var settingDefinitions = SettingDefinitionManager.GetAll().Where(x => notCacheKeys.Any(k => GetSettingNameFormCacheKeyOrNull(k) == x.Name)); + return result; + } - var settingsDictionary = (await SettingRepository.GetListAsync(notCacheKeys.Select(GetSettingNameFormCacheKeyOrNull).ToArray(), providerName, providerKey)) - .ToDictionary(s => s.Name, s => s.Value); + private async Task>> SetCacheItemsAsync( + string providerName, + string providerKey, + List notCacheKeys) + { + var settingDefinitions = SettingDefinitionManager.GetAll().Where(x => notCacheKeys.Any(k => GetSettingNameFormCacheKeyOrNull(k) == x.Name)); - var cacheItems = new List>(); + var settingsDictionary = (await SettingRepository.GetListAsync(notCacheKeys.Select(GetSettingNameFormCacheKeyOrNull).ToArray(), providerName, providerKey)) + .ToDictionary(s => s.Name, s => s.Value); - foreach (var settingDefinition in settingDefinitions) - { - var settingValue = settingsDictionary.GetOrDefault(settingDefinition.Name); - cacheItems.Add( - new KeyValuePair( - CalculateCacheKey(settingDefinition.Name, providerName, providerKey), - new SettingCacheItem(settingValue) - ) - ); - } + var cacheItems = new List>(); - await Cache.SetManyAsync(cacheItems, considerUow: true); - - return cacheItems; + foreach (var settingDefinition in settingDefinitions) + { + var settingValue = settingsDictionary.GetOrDefault(settingDefinition.Name); + cacheItems.Add( + new KeyValuePair( + CalculateCacheKey(settingDefinition.Name, providerName, providerKey), + new SettingCacheItem(settingValue) + ) + ); } + await Cache.SetManyAsync(cacheItems, considerUow: true); - protected virtual string CalculateCacheKey(string name, string providerName, string providerKey) - { - return SettingCacheItem.CalculateCacheKey(name, providerName, providerKey); - } + return cacheItems; + } - protected virtual string GetSettingNameFormCacheKeyOrNull(string key) - { - //TODO: throw ex when name is null? - return SettingCacheItem.GetSettingNameFormCacheKeyOrNull(key); - } + + protected virtual string CalculateCacheKey(string name, string providerName, string providerKey) + { + return SettingCacheItem.CalculateCacheKey(name, providerName, providerKey); + } + + protected virtual string GetSettingNameFormCacheKeyOrNull(string key) + { + //TODO: throw ex when name is null? + return SettingCacheItem.GetSettingNameFormCacheKeyOrNull(key); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs index cfb4cccbe3..14629b988e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManager.cs @@ -7,195 +7,194 @@ using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManager : ISettingManager, ISingletonDependency { - public class SettingManager : ISettingManager, ISingletonDependency + protected ISettingDefinitionManager SettingDefinitionManager { get; } + protected ISettingEncryptionService SettingEncryptionService { get; } + protected List Providers => _lazyProviders.Value; + protected SettingManagementOptions Options { get; } + private readonly Lazy> _lazyProviders; + + public SettingManager( + IOptions options, + IServiceProvider serviceProvider, + ISettingDefinitionManager settingDefinitionManager, + ISettingEncryptionService settingEncryptionService) { - protected ISettingDefinitionManager SettingDefinitionManager { get; } - protected ISettingEncryptionService SettingEncryptionService { get; } - protected List Providers => _lazyProviders.Value; - protected SettingManagementOptions Options { get; } - private readonly Lazy> _lazyProviders; - - public SettingManager( - IOptions options, - IServiceProvider serviceProvider, - ISettingDefinitionManager settingDefinitionManager, - ISettingEncryptionService settingEncryptionService) - { - SettingDefinitionManager = settingDefinitionManager; - SettingEncryptionService = settingEncryptionService; - Options = options.Value; - - //TODO: Instead, use IHybridServiceScopeFactory and create a scope..? - - _lazyProviders = new Lazy>( - () => Options - .Providers - .Select(c => serviceProvider.GetRequiredService(c) as ISettingManagementProvider) - .ToList(), - true - ); - } - - public virtual Task GetOrNullAsync(string name, string providerName, string providerKey, bool fallback = true) - { - Check.NotNull(name, nameof(name)); - Check.NotNull(providerName, nameof(providerName)); + SettingDefinitionManager = settingDefinitionManager; + SettingEncryptionService = settingEncryptionService; + Options = options.Value; + + //TODO: Instead, use IHybridServiceScopeFactory and create a scope..? + + _lazyProviders = new Lazy>( + () => Options + .Providers + .Select(c => serviceProvider.GetRequiredService(c) as ISettingManagementProvider) + .ToList(), + true + ); + } - return GetOrNullInternalAsync(name, providerName, providerKey, fallback); - } + public virtual Task GetOrNullAsync(string name, string providerName, string providerKey, bool fallback = true) + { + Check.NotNull(name, nameof(name)); + Check.NotNull(providerName, nameof(providerName)); - public virtual async Task> GetAllAsync(string providerName, string providerKey, bool fallback = true) - { - Check.NotNull(providerName, nameof(providerName)); + return GetOrNullInternalAsync(name, providerName, providerKey, fallback); + } - var settingDefinitions = SettingDefinitionManager.GetAll(); - var providers = Enumerable.Reverse(Providers) - .SkipWhile(c => c.Name != providerName); + public virtual async Task> GetAllAsync(string providerName, string providerKey, bool fallback = true) + { + Check.NotNull(providerName, nameof(providerName)); - if (!fallback) - { - providers = providers.TakeWhile(c => c.Name == providerName); - } + var settingDefinitions = SettingDefinitionManager.GetAll(); + var providers = Enumerable.Reverse(Providers) + .SkipWhile(c => c.Name != providerName); - var providerList = providers.Reverse().ToList(); + if (!fallback) + { + providers = providers.TakeWhile(c => c.Name == providerName); + } - if (!providerList.Any()) - { - return new List(); - } + var providerList = providers.Reverse().ToList(); - var settingValues = new Dictionary(); + if (!providerList.Any()) + { + return new List(); + } - foreach (var setting in settingDefinitions) - { - string value = null; + var settingValues = new Dictionary(); - if (setting.IsInherited) - { - foreach (var provider in providerList) - { - var providerValue = await provider.GetOrNullAsync( - setting, - provider.Name == providerName ? providerKey : null - ); - if (providerValue != null) - { - value = providerValue; - } - } - } - else + foreach (var setting in settingDefinitions) + { + string value = null; + + if (setting.IsInherited) + { + foreach (var provider in providerList) { - value = await providerList[0].GetOrNullAsync( + var providerValue = await provider.GetOrNullAsync( setting, - providerKey + provider.Name == providerName ? providerKey : null ); - } - - if (setting.IsEncrypted) - { - value = SettingEncryptionService.Decrypt(setting, value); - } - - if (value != null) - { - settingValues[setting.Name] = new SettingValue(setting.Name, value); + if (providerValue != null) + { + value = providerValue; + } } } - - return settingValues.Values.ToList(); - } - - public virtual async Task SetAsync(string name, string value, string providerName, string providerKey, bool forceToSet = false) - { - Check.NotNull(name, nameof(name)); - Check.NotNull(providerName, nameof(providerName)); - - var setting = SettingDefinitionManager.Get(name); - - var providers = Enumerable - .Reverse(Providers) - .SkipWhile(p => p.Name != providerName) - .ToList(); - - if (!providers.Any()) + else { - return; + value = await providerList[0].GetOrNullAsync( + setting, + providerKey + ); } if (setting.IsEncrypted) { - value = SettingEncryptionService.Encrypt(setting, value); + value = SettingEncryptionService.Decrypt(setting, value); } - if (providers.Count > 1 && !forceToSet && setting.IsInherited && value != null) + if (value != null) { - var fallbackValue = await GetOrNullInternalAsync(name, providers[1].Name, null); - if (fallbackValue == value) - { - //Clear the value if it's same as it's fallback value - value = null; - } + settingValues[setting.Name] = new SettingValue(setting.Name, value); } + } - providers = providers - .TakeWhile(p => p.Name == providerName) - .ToList(); //Getting list for case of there are more than one provider with same providerName + return settingValues.Values.ToList(); + } - if (value == null) - { - foreach (var provider in providers) - { - await provider.ClearAsync(setting, providerKey); - } - } - else - { - foreach (var provider in providers) - { - await provider.SetAsync(setting, value, providerKey); - } - } + public virtual async Task SetAsync(string name, string value, string providerName, string providerKey, bool forceToSet = false) + { + Check.NotNull(name, nameof(name)); + Check.NotNull(providerName, nameof(providerName)); + + var setting = SettingDefinitionManager.Get(name); + + var providers = Enumerable + .Reverse(Providers) + .SkipWhile(p => p.Name != providerName) + .ToList(); + + if (!providers.Any()) + { + return; } - protected virtual async Task GetOrNullInternalAsync(string name, string providerName, string providerKey, bool fallback = true) + if (setting.IsEncrypted) { - var setting = SettingDefinitionManager.Get(name); - var providers = Enumerable - .Reverse(Providers); + value = SettingEncryptionService.Encrypt(setting, value); + } - if (providerName != null) + if (providers.Count > 1 && !forceToSet && setting.IsInherited && value != null) + { + var fallbackValue = await GetOrNullInternalAsync(name, providers[1].Name, null); + if (fallbackValue == value) { - providers = providers.SkipWhile(c => c.Name != providerName); + //Clear the value if it's same as it's fallback value + value = null; } + } - if (!fallback || !setting.IsInherited) + providers = providers + .TakeWhile(p => p.Name == providerName) + .ToList(); //Getting list for case of there are more than one provider with same providerName + + if (value == null) + { + foreach (var provider in providers) { - providers = providers.TakeWhile(c => c.Name == providerName); + await provider.ClearAsync(setting, providerKey); } - - string value = null; + } + else + { foreach (var provider in providers) { - value = await provider.GetOrNullAsync( - setting, - provider.Name == providerName ? providerKey : null - ); - - if (value != null) - { - break; - } + await provider.SetAsync(setting, value, providerKey); } + } + } - if (setting.IsEncrypted) + protected virtual async Task GetOrNullInternalAsync(string name, string providerName, string providerKey, bool fallback = true) + { + var setting = SettingDefinitionManager.Get(name); + var providers = Enumerable + .Reverse(Providers); + + if (providerName != null) + { + providers = providers.SkipWhile(c => c.Name != providerName); + } + + if (!fallback || !setting.IsInherited) + { + providers = providers.TakeWhile(c => c.Name == providerName); + } + + string value = null; + foreach (var provider in providers) + { + value = await provider.GetOrNullAsync( + setting, + provider.Name == providerName ? providerKey : null + ); + + if (value != null) { - value = SettingEncryptionService.Decrypt(setting, value); + break; } + } - return value; + if (setting.IsEncrypted) + { + value = SettingEncryptionService.Decrypt(setting, value); } + + return value; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs index ab6bb185ca..1d7deb313e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingStore.cs @@ -3,25 +3,24 @@ using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingStore : ISettingStore, ITransientDependency { - public class SettingStore : ISettingStore, ITransientDependency - { - protected ISettingManagementStore ManagementStore { get; } + protected ISettingManagementStore ManagementStore { get; } - public SettingStore(ISettingManagementStore managementStore) - { - ManagementStore = managementStore; - } + public SettingStore(ISettingManagementStore managementStore) + { + ManagementStore = managementStore; + } - public virtual Task GetOrNullAsync(string name, string providerName, string providerKey) - { - return ManagementStore.GetOrNullAsync(name, providerName, providerKey); - } + public virtual Task GetOrNullAsync(string name, string providerName, string providerKey) + { + return ManagementStore.GetOrNullAsync(name, providerName, providerKey); + } - public virtual Task> GetAllAsync(string[] names, string providerName, string providerKey) - { - return ManagementStore.GetListAsync(names, providerName, providerKey); - } + public virtual Task> GetAllAsync(string[] names, string providerName, string providerKey) + { + return ManagementStore.GetListAsync(names, providerName, providerKey); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs index 947e2d8799..63063adfea 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagementProvider.cs @@ -2,30 +2,29 @@ using Volo.Abp.MultiTenancy; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class TenantSettingManagementProvider : SettingManagementProvider, ITransientDependency { - public class TenantSettingManagementProvider : SettingManagementProvider, ITransientDependency - { - public override string Name => TenantSettingValueProvider.ProviderName; + public override string Name => TenantSettingValueProvider.ProviderName; - protected ICurrentTenant CurrentTenant { get; } + protected ICurrentTenant CurrentTenant { get; } - public TenantSettingManagementProvider( - ISettingManagementStore settingManagementStore, - ICurrentTenant currentTenant) - : base(settingManagementStore) - { - CurrentTenant = currentTenant; - } + public TenantSettingManagementProvider( + ISettingManagementStore settingManagementStore, + ICurrentTenant currentTenant) + : base(settingManagementStore) + { + CurrentTenant = currentTenant; + } - protected override string NormalizeProviderKey(string providerKey) + protected override string NormalizeProviderKey(string providerKey) + { + if (providerKey != null) { - if (providerKey != null) - { - return providerKey; - } - - return CurrentTenant.Id?.ToString(); + return providerKey; } + + return CurrentTenant.Id?.ToString(); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs index fa6139e51b..1022a9aa98 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/TenantSettingManagerExtensions.cs @@ -4,48 +4,47 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public static class TenantSettingManagerExtensions { - public static class TenantSettingManagerExtensions + public static Task GetOrNullForTenantAsync(this ISettingManager settingManager, [NotNull] string name, Guid tenantId, bool fallback = true) { - public static Task GetOrNullForTenantAsync(this ISettingManager settingManager, [NotNull] string name, Guid tenantId, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, TenantSettingValueProvider.ProviderName, tenantId.ToString(), fallback); - } + return settingManager.GetOrNullAsync(name, TenantSettingValueProvider.ProviderName, tenantId.ToString(), fallback); + } - public static Task GetOrNullForCurrentTenantAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, TenantSettingValueProvider.ProviderName, null, fallback); - } + public static Task GetOrNullForCurrentTenantAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) + { + return settingManager.GetOrNullAsync(name, TenantSettingValueProvider.ProviderName, null, fallback); + } - public static Task> GetAllForTenantAsync(this ISettingManager settingManager, Guid tenantId, bool fallback = true) - { - return settingManager.GetAllAsync(TenantSettingValueProvider.ProviderName, tenantId.ToString(), fallback); - } + public static Task> GetAllForTenantAsync(this ISettingManager settingManager, Guid tenantId, bool fallback = true) + { + return settingManager.GetAllAsync(TenantSettingValueProvider.ProviderName, tenantId.ToString(), fallback); + } - public static Task> GetAllForCurrentTenantAsync(this ISettingManager settingManager, bool fallback = true) - { - return settingManager.GetAllAsync(TenantSettingValueProvider.ProviderName, null, fallback); - } + public static Task> GetAllForCurrentTenantAsync(this ISettingManager settingManager, bool fallback = true) + { + return settingManager.GetAllAsync(TenantSettingValueProvider.ProviderName, null, fallback); + } - public static Task SetForTenantAsync(this ISettingManager settingManager, Guid tenantId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) - { - return settingManager.SetAsync(name, value, TenantSettingValueProvider.ProviderName, tenantId.ToString(), forceToSet); - } + public static Task SetForTenantAsync(this ISettingManager settingManager, Guid tenantId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) + { + return settingManager.SetAsync(name, value, TenantSettingValueProvider.ProviderName, tenantId.ToString(), forceToSet); + } - public static Task SetForCurrentTenantAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) - { - return settingManager.SetAsync(name, value, TenantSettingValueProvider.ProviderName, null, forceToSet); - } + public static Task SetForCurrentTenantAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) + { + return settingManager.SetAsync(name, value, TenantSettingValueProvider.ProviderName, null, forceToSet); + } - public static Task SetForTenantOrGlobalAsync(this ISettingManager settingManager, Guid? tenantId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) + public static Task SetForTenantOrGlobalAsync(this ISettingManager settingManager, Guid? tenantId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) + { + if (tenantId.HasValue) { - if (tenantId.HasValue) - { - return settingManager.SetForTenantAsync(tenantId.Value, name, value, forceToSet); - } - - return settingManager.SetGlobalAsync(name, value); + return settingManager.SetForTenantAsync(tenantId.Value, name, value, forceToSet); } + + return settingManager.SetGlobalAsync(name, value); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs index 790e0eaa0c..514af445b2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagementProvider.cs @@ -2,30 +2,29 @@ using Volo.Abp.Settings; using Volo.Abp.Users; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class UserSettingManagementProvider : SettingManagementProvider, ITransientDependency { - public class UserSettingManagementProvider : SettingManagementProvider, ITransientDependency - { - public override string Name => UserSettingValueProvider.ProviderName; + public override string Name => UserSettingValueProvider.ProviderName; - protected ICurrentUser CurrentUser { get; } + protected ICurrentUser CurrentUser { get; } - public UserSettingManagementProvider( - ISettingManagementStore settingManagementStore, - ICurrentUser currentUser) - : base(settingManagementStore) - { - CurrentUser = currentUser; - } + public UserSettingManagementProvider( + ISettingManagementStore settingManagementStore, + ICurrentUser currentUser) + : base(settingManagementStore) + { + CurrentUser = currentUser; + } - protected override string NormalizeProviderKey(string providerKey) + protected override string NormalizeProviderKey(string providerKey) + { + if (providerKey != null) { - if (providerKey != null) - { - return providerKey; - } - - return CurrentUser.Id?.ToString(); + return providerKey; } + + return CurrentUser.Id?.ToString(); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs index 2b58382463..5087f846bd 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/UserSettingManagerExtensions.cs @@ -5,40 +5,39 @@ using JetBrains.Annotations; using Volo.Abp.Settings; using Volo.Abp.Users; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +//TODO: Consider to move to another package? + +public static class UserSettingManagerExtensions { - //TODO: Consider to move to another package? + public static Task GetOrNullForUserAsync(this ISettingManager settingManager, [NotNull] string name, Guid userId, bool fallback = true) + { + return settingManager.GetOrNullAsync(name, UserSettingValueProvider.ProviderName, userId.ToString(), fallback); + } + + public static Task GetOrNullForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) + { + return settingManager.GetOrNullAsync(name, UserSettingValueProvider.ProviderName, null, fallback); + } + + public static Task> GetAllForUserAsync(this ISettingManager settingManager, Guid userId, bool fallback = true) + { + return settingManager.GetAllAsync(UserSettingValueProvider.ProviderName, userId.ToString(), fallback); + } + + public static Task> GetAllForCurrentUserAsync(this ISettingManager settingManager, bool fallback = true) + { + return settingManager.GetAllAsync(UserSettingValueProvider.ProviderName, null, fallback); + } + + public static Task SetForUserAsync(this ISettingManager settingManager, Guid userId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) + { + return settingManager.SetAsync(name, value, UserSettingValueProvider.ProviderName, userId.ToString(), forceToSet); + } - public static class UserSettingManagerExtensions + public static Task SetForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) { - public static Task GetOrNullForUserAsync(this ISettingManager settingManager, [NotNull] string name, Guid userId, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, UserSettingValueProvider.ProviderName, userId.ToString(), fallback); - } - - public static Task GetOrNullForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true) - { - return settingManager.GetOrNullAsync(name, UserSettingValueProvider.ProviderName, null, fallback); - } - - public static Task> GetAllForUserAsync(this ISettingManager settingManager, Guid userId, bool fallback = true) - { - return settingManager.GetAllAsync(UserSettingValueProvider.ProviderName, userId.ToString(), fallback); - } - - public static Task> GetAllForCurrentUserAsync(this ISettingManager settingManager, bool fallback = true) - { - return settingManager.GetAllAsync(UserSettingValueProvider.ProviderName, null, fallback); - } - - public static Task SetForUserAsync(this ISettingManager settingManager, Guid userId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) - { - return settingManager.SetAsync(name, value, UserSettingValueProvider.ProviderName, userId.ToString(), forceToSet); - } - - public static Task SetForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) - { - return settingManager.SetAsync(name, value, UserSettingValueProvider.ProviderName, null, forceToSet); - } + return settingManager.SetAsync(name, value, UserSettingValueProvider.ProviderName, null, forceToSet); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreModule.cs index 6b11457739..1a17278e13 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreModule.cs @@ -2,22 +2,21 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +[DependsOn( + typeof(AbpSettingManagementDomainModule), + typeof(AbpEntityFrameworkCoreModule) + )] +public class AbpSettingManagementEntityFrameworkCoreModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementDomainModule), - typeof(AbpEntityFrameworkCoreModule) - )] - public class AbpSettingManagementEntityFrameworkCoreModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + context.Services.AddAbpDbContext(options => { - context.Services.AddAbpDbContext(options => - { - options.AddDefaultRepositories(); + options.AddDefaultRepositories(); - options.AddRepository(); - }); - } + options.AddRepository(); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs index 4bab46315a..a48e4deef6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/EfCoreSettingRepository.cs @@ -7,50 +7,49 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +public class EfCoreSettingRepository : EfCoreRepository, + ISettingRepository { - public class EfCoreSettingRepository : EfCoreRepository, - ISettingRepository + public EfCoreSettingRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) { - public EfCoreSettingRepository(IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } + } - public virtual async Task FindAsync( - string name, - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .OrderBy(x => x.Id) - .FirstOrDefaultAsync( - s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, - GetCancellationToken(cancellationToken)); - } + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .OrderBy(x => x.Id) + .FirstOrDefaultAsync( + s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, + GetCancellationToken(cancellationToken)); + } - public virtual async Task> GetListAsync( - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .Where( - s => s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(GetCancellationToken(cancellationToken)); - } + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .Where( + s => s.ProviderName == providerName && s.ProviderKey == providerKey + ).ToListAsync(GetCancellationToken(cancellationToken)); + } - public virtual async Task> GetListAsync( - string[] names, - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .Where( - s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey - ).ToListAsync(GetCancellationToken(cancellationToken)); - } + public virtual async Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .Where( + s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey + ).ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs index aa0305d37c..6c6e29a78b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/ISettingManagementDbContext.cs @@ -3,12 +3,11 @@ using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +[IgnoreMultiTenancy] +[ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] +public interface ISettingManagementDbContext : IEfCoreDbContext { - [IgnoreMultiTenancy] - [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] - public interface ISettingManagementDbContext : IEfCoreDbContext - { - DbSet Settings { get; } - } + DbSet Settings { get; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs index 23a9773912..bd1f3abf10 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContext.cs @@ -3,25 +3,24 @@ using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +[IgnoreMultiTenancy] +[ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] +public class SettingManagementDbContext : AbpDbContext, ISettingManagementDbContext { - [IgnoreMultiTenancy] - [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] - public class SettingManagementDbContext : AbpDbContext, ISettingManagementDbContext - { - public DbSet Settings { get; set; } + public DbSet Settings { get; set; } - public SettingManagementDbContext(DbContextOptions options) - : base(options) - { + public SettingManagementDbContext(DbContextOptions options) + : base(options) + { - } + } - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); - builder.ConfigureSettingManagement(); - } + builder.ConfigureSettingManagement(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs index b01f4bc29f..45937d0027 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingManagementDbContextModelBuilderExtensions.cs @@ -2,41 +2,40 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Modeling; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +public static class SettingManagementDbContextModelBuilderExtensions { - public static class SettingManagementDbContextModelBuilderExtensions + //TODO: Instead of getting parameters, get a action of SettingManagementModelBuilderConfigurationOptions like other modules + public static void ConfigureSettingManagement( + [NotNull] this ModelBuilder builder) { - //TODO: Instead of getting parameters, get a action of SettingManagementModelBuilderConfigurationOptions like other modules - public static void ConfigureSettingManagement( - [NotNull] this ModelBuilder builder) - { - Check.NotNull(builder, nameof(builder)); + Check.NotNull(builder, nameof(builder)); - if (builder.IsTenantOnlyDatabase()) - { - return; - } + if (builder.IsTenantOnlyDatabase()) + { + return; + } - builder.Entity(b => - { - b.ToTable(AbpSettingManagementDbProperties.DbTablePrefix + "Settings", AbpSettingManagementDbProperties.DbSchema); + builder.Entity(b => + { + b.ToTable(AbpSettingManagementDbProperties.DbTablePrefix + "Settings", AbpSettingManagementDbProperties.DbSchema); - b.ConfigureByConvention(); + b.ConfigureByConvention(); - b.Property(x => x.Name).HasMaxLength(SettingConsts.MaxNameLength).IsRequired(); + b.Property(x => x.Name).HasMaxLength(SettingConsts.MaxNameLength).IsRequired(); - if (builder.IsUsingOracle()) { SettingConsts.MaxValueLengthValue = 2000; } - b.Property(x => x.Value).HasMaxLength(SettingConsts.MaxValueLengthValue).IsRequired(); + if (builder.IsUsingOracle()) { SettingConsts.MaxValueLengthValue = 2000; } + b.Property(x => x.Value).HasMaxLength(SettingConsts.MaxValueLengthValue).IsRequired(); - b.Property(x => x.ProviderName).HasMaxLength(SettingConsts.MaxProviderNameLength); - b.Property(x => x.ProviderKey).HasMaxLength(SettingConsts.MaxProviderKeyLength); + b.Property(x => x.ProviderName).HasMaxLength(SettingConsts.MaxProviderNameLength); + b.Property(x => x.ProviderKey).HasMaxLength(SettingConsts.MaxProviderKeyLength); - b.HasIndex(x => new {x.Name, x.ProviderName, x.ProviderKey}).IsUnique(true); + b.HasIndex(x => new { x.Name, x.ProviderName, x.ProviderKey }).IsUnique(true); - b.ApplyObjectExtensionMappings(); - }); + b.ApplyObjectExtensionMappings(); + }); - builder.TryConfigureObjectExtensions(); - } + builder.TryConfigureObjectExtensions(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.cs index afd29df734..6bacf59a23 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.cs @@ -1,8 +1,7 @@ // This file is part of EmailSettingsClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.Abp.SettingManagement.ClientProxies +namespace Volo.Abp.SettingManagement.ClientProxies; + +public partial class EmailSettingsClientProxy { - public partial class EmailSettingsClientProxy - { - } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiClientModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiClientModule.cs index 5076619402..7f222f79b2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiClientModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiClientModule.cs @@ -3,24 +3,23 @@ using Volo.Abp.Http.Client; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpHttpClientModule))] +public class AbpSettingManagementHttpApiClientModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementApplicationContractsModule), - typeof(AbpHttpClientModule))] - public class AbpSettingManagementHttpApiClientModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddStaticHttpClientProxies( - typeof(AbpSettingManagementApplicationContractsModule).Assembly, - SettingManagementRemoteServiceConsts.RemoteServiceName - ); + context.Services.AddStaticHttpClientProxies( + typeof(AbpSettingManagementApplicationContractsModule).Assembly, + SettingManagementRemoteServiceConsts.RemoteServiceName + ); - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - } + Configure(options => + { + options.FileSets.AddEmbedded(); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiModule.cs index ce661c13b2..6c505559af 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/AbpSettingManagementHttpApiModule.cs @@ -5,31 +5,30 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule))] +public class AbpSettingManagementHttpApiModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementApplicationContractsModule), - typeof(AbpAspNetCoreMvcModule))] - public class AbpSettingManagementHttpApiModule : AbpModule + public override void PreConfigureServices(ServiceConfigurationContext context) { - public override void PreConfigureServices(ServiceConfigurationContext context) + PreConfigure(mvcBuilder => { - PreConfigure(mvcBuilder => - { - mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpSettingManagementHttpApiModule).Assembly); - }); - } + mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpSettingManagementHttpApiModule).Assembly); + }); + } - public override void ConfigureServices(ServiceConfigurationContext context) + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => { - Configure(options => - { - options.Resources - .Get() - .AddBaseTypes( - typeof(AbpUiResource) - ); - }); - } + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs index b3c9a49949..18158983e0 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs @@ -2,30 +2,29 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[RemoteService(Name = SettingManagementRemoteServiceConsts.RemoteServiceName)] +[Area(SettingManagementRemoteServiceConsts.ModuleName)] +[Route("api/setting-management/emailing")] +public class EmailSettingsController : AbpControllerBase, IEmailSettingsAppService { - [RemoteService(Name = SettingManagementRemoteServiceConsts.RemoteServiceName)] - [Area(SettingManagementRemoteServiceConsts.ModuleName)] - [Route("api/setting-management/emailing")] - public class EmailSettingsController : AbpControllerBase, IEmailSettingsAppService - { - private readonly IEmailSettingsAppService _emailSettingsAppService; + private readonly IEmailSettingsAppService _emailSettingsAppService; - public EmailSettingsController(IEmailSettingsAppService emailSettingsAppService) - { - _emailSettingsAppService = emailSettingsAppService; - } + public EmailSettingsController(IEmailSettingsAppService emailSettingsAppService) + { + _emailSettingsAppService = emailSettingsAppService; + } - [HttpGet] - public Task GetAsync() - { - return _emailSettingsAppService.GetAsync(); - } + [HttpGet] + public Task GetAsync() + { + return _emailSettingsAppService.GetAsync(); + } - [HttpPost] - public Task UpdateAsync(UpdateEmailSettingsDto input) - { - return _emailSettingsAppService.UpdateAsync(input); - } + [HttpPost] + public Task UpdateAsync(UpdateEmailSettingsDto input) + { + return _emailSettingsAppService.UpdateAsync(input); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs index 3fdfb0601d..70ac2de81f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs @@ -2,20 +2,19 @@ using Volo.Abp.Studio; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] +public class AbpSettingManagementInstallerModule : AbpModule { - [DependsOn( - typeof(AbpStudioModuleInstallerModule), - typeof(AbpVirtualFileSystemModule) - )] - public class AbpSettingManagementInstallerModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - } + options.FileSets.AddEmbedded(); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs index e7fa67631e..d4b68fc61f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs @@ -3,22 +3,21 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; using Volo.Abp.Studio.ModuleInstalling; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[Dependency(ServiceLifetime.Transient, ReplaceServices = true)] +[ExposeServices(typeof(IModuleInstallingPipelineBuilder))] +public class SettingManagementInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency { - [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] - [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] - public class SettingManagementInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + public async Task BuildAsync(ModuleInstallingContext context) { - public async Task BuildAsync(ModuleInstallingContext context) - { - context.AddEfCoreConfigurationMethodDeclaration( - new EfCoreConfigurationMethodDeclaration( - "Volo.Abp.SettingManagement.EntityFrameworkCore", - "ConfigureSettingManagement" - ) - ); - - return GetBasePipeline(context); - } + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.SettingManagement.EntityFrameworkCore", + "ConfigureSettingManagement" + ) + ); + + return GetBasePipeline(context); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbModule.cs index b2d4c1852b..e06f5bd86a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbModule.cs @@ -2,22 +2,21 @@ using Volo.Abp.Modularity; using Volo.Abp.MongoDB; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[DependsOn( + typeof(AbpSettingManagementDomainModule), + typeof(AbpMongoDbModule) + )] +public class AbpSettingManagementMongoDbModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementDomainModule), - typeof(AbpMongoDbModule) - )] - public class AbpSettingManagementMongoDbModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + context.Services.AddMongoDbContext(options => { - context.Services.AddMongoDbContext(options => - { - options.AddDefaultRepositories(); + options.AddDefaultRepositories(); - options.AddRepository(); - }); - } + options.AddRepository(); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs index 609e940b63..099c886e2d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/ISettingManagementMongoDbContext.cs @@ -3,12 +3,11 @@ using Volo.Abp.Data; using Volo.Abp.MongoDB; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[IgnoreMultiTenancy] +[ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] +public interface ISettingManagementMongoDbContext : IAbpMongoDbContext { - [IgnoreMultiTenancy] - [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] - public interface ISettingManagementMongoDbContext : IAbpMongoDbContext - { - IMongoCollection Settings { get; } - } + IMongoCollection Settings { get; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs index aef9624a4d..74c680e7e2 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/MongoSettingRepository.cs @@ -8,48 +8,47 @@ using MongoDB.Driver.Linq; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +public class MongoSettingRepository : MongoDbRepository, + ISettingRepository { - public class MongoSettingRepository : MongoDbRepository, - ISettingRepository + public MongoSettingRepository(IMongoDbContextProvider dbContextProvider) + : base(dbContextProvider) { - public MongoSettingRepository(IMongoDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } + } - public virtual async Task FindAsync( - string name, - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetMongoQueryableAsync(cancellationToken)) - .OrderBy(x => x.Id) - .FirstOrDefaultAsync( - s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, - GetCancellationToken(cancellationToken)); - } + public virtual async Task FindAsync( + string name, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .OrderBy(x => x.Id) + .FirstOrDefaultAsync( + s => s.Name == name && s.ProviderName == providerName && s.ProviderKey == providerKey, + GetCancellationToken(cancellationToken)); + } - public virtual async Task> GetListAsync( - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetMongoQueryableAsync(cancellationToken)) - .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) - .ToListAsync(GetCancellationToken(cancellationToken)); - } + public virtual async Task> GetListAsync( + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey) + .ToListAsync(GetCancellationToken(cancellationToken)); + } - public virtual async Task> GetListAsync( - string[] names, - string providerName, - string providerKey, - CancellationToken cancellationToken = default) - { - return await (await GetMongoQueryableAsync(cancellationToken)) - .Where(s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey) - .ToListAsync(GetCancellationToken(cancellationToken)); - } + public virtual async Task> GetListAsync( + string[] names, + string providerName, + string providerKey, + CancellationToken cancellationToken = default) + { + return await (await GetMongoQueryableAsync(cancellationToken)) + .Where(s => names.Contains(s.Name) && s.ProviderName == providerName && s.ProviderKey == providerKey) + .ToListAsync(GetCancellationToken(cancellationToken)); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs index 003e1a4b46..b31e1c314d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContext.cs @@ -3,19 +3,18 @@ using Volo.Abp.Data; using Volo.Abp.MongoDB; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[IgnoreMultiTenancy] +[ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] +public class SettingManagementMongoDbContext : AbpMongoDbContext, ISettingManagementMongoDbContext { - [IgnoreMultiTenancy] - [ConnectionStringName(AbpSettingManagementDbProperties.ConnectionStringName)] - public class SettingManagementMongoDbContext : AbpMongoDbContext, ISettingManagementMongoDbContext - { - public IMongoCollection Settings => Collection(); + public IMongoCollection Settings => Collection(); - protected override void CreateModel(IMongoModelBuilder modelBuilder) - { - base.CreateModel(modelBuilder); + protected override void CreateModel(IMongoModelBuilder modelBuilder) + { + base.CreateModel(modelBuilder); - modelBuilder.ConfigureSettingManagement(); - } + modelBuilder.ConfigureSettingManagement(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContextExtensions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContextExtensions.cs index 71199ecd3e..4b171c8181 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContextExtensions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo/Abp/SettingManagement/MongoDB/SettingManagementMongoDbContextExtensions.cs @@ -1,18 +1,17 @@ using Volo.Abp.MongoDB; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +public static class SettingManagementMongoDbContextExtensions { - public static class SettingManagementMongoDbContextExtensions + public static void ConfigureSettingManagement( + this IMongoModelBuilder builder) { - public static void ConfigureSettingManagement( - this IMongoModelBuilder builder) - { - Check.NotNull(builder, nameof(builder)); + Check.NotNull(builder, nameof(builder)); - builder.Entity(b => - { - b.CollectionName = AbpSettingManagementDbProperties.DbTablePrefix + "Settings"; - }); - } + builder.Entity(b => + { + b.CollectionName = AbpSettingManagementDbProperties.DbTablePrefix + "Settings"; + }); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs index 0955407103..1c83245c63 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs @@ -10,54 +10,53 @@ using Volo.Abp.SettingManagement.Web.Settings; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.SettingManagement.Web +namespace Volo.Abp.SettingManagement.Web; + +[DependsOn( + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(AbpSettingManagementDomainSharedModule) + )] +public class AbpSettingManagementWebModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementApplicationContractsModule), - typeof(AbpAspNetCoreMvcUiThemeSharedModule), - typeof(AbpSettingManagementDomainSharedModule) - )] - public class AbpSettingManagementWebModule : AbpModule + public override void PreConfigureServices(ServiceConfigurationContext context) { - public override void PreConfigureServices(ServiceConfigurationContext context) + PreConfigure(mvcBuilder => { - PreConfigure(mvcBuilder => - { - mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpSettingManagementWebModule).Assembly); - }); - } + mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpSettingManagementWebModule).Assembly); + }); + } - public override void ConfigureServices(ServiceConfigurationContext context) + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => { - Configure(options => - { - options.MenuContributors.Add(new SettingManagementMainMenuContributor()); - }); + options.MenuContributors.Add(new SettingManagementMainMenuContributor()); + }); - Configure(options => - { - options.Contributors.Add(new EmailingPageContributor()); - }); + Configure(options => + { + options.Contributors.Add(new EmailingPageContributor()); + }); - Configure(options => - { - options.FileSets.AddEmbedded(); - }); + Configure(options => + { + options.FileSets.AddEmbedded(); + }); - Configure(options => - { - options.ScriptBundles - .Configure(typeof(IndexModel).FullName, - configuration => - { - configuration.AddFiles("/Pages/SettingManagement/Components/EmailSettingGroup/Default.js"); - }); - }); + Configure(options => + { + options.ScriptBundles + .Configure(typeof(IndexModel).FullName, + configuration => + { + configuration.AddFiles("/Pages/SettingManagement/Components/EmailSettingGroup/Default.js"); + }); + }); - Configure(options => - { - options.DisableModule(SettingManagementRemoteServiceConsts.ModuleName); - }); - } + Configure(options => + { + options.DisableModule(SettingManagementRemoteServiceConsts.ModuleName); + }); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs index d1fe8717c2..97eb89b6c6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMainMenuContributor.cs @@ -7,58 +7,57 @@ using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; using Volo.Abp.UI.Navigation; using Volo.Abp.SettingManagement.Localization; -namespace Volo.Abp.SettingManagement.Web.Navigation +namespace Volo.Abp.SettingManagement.Web.Navigation; + +public class SettingManagementMainMenuContributor : IMenuContributor { - public class SettingManagementMainMenuContributor : IMenuContributor + public virtual async Task ConfigureMenuAsync(MenuConfigurationContext context) { - public virtual async Task ConfigureMenuAsync(MenuConfigurationContext context) + if (context.Menu.Name != StandardMenus.Main) { - if (context.Menu.Name != StandardMenus.Main) - { - return; - } + return; + } - if (context.Menu.FindMenuItem(SettingManagementMenuNames.GroupName) != null) - { - /* This may happen if blazor server UI is being used in the same application. - * In this case, we don't add the MVC setting management UI. */ - return; - } + if (context.Menu.FindMenuItem(SettingManagementMenuNames.GroupName) != null) + { + /* This may happen if blazor server UI is being used in the same application. + * In this case, we don't add the MVC setting management UI. */ + return; + } - var settingManagementPageOptions = context.ServiceProvider.GetRequiredService>().Value; - var settingPageCreationContext = new SettingPageCreationContext(context.ServiceProvider); - if (!settingManagementPageOptions.Contributors.Any() || - !(await CheckAnyOfPagePermissionsGranted(settingManagementPageOptions, settingPageCreationContext))) - { - return; - } + var settingManagementPageOptions = context.ServiceProvider.GetRequiredService>().Value; + var settingPageCreationContext = new SettingPageCreationContext(context.ServiceProvider); + if (!settingManagementPageOptions.Contributors.Any() || + !(await CheckAnyOfPagePermissionsGranted(settingManagementPageOptions, settingPageCreationContext))) + { + return; + } - var l = context.GetLocalizer(); + var l = context.GetLocalizer(); - context.Menu - .GetAdministration() - .AddItem( - new ApplicationMenuItem( - SettingManagementMenuNames.GroupName, - l["Settings"], - "~/SettingManagement", - icon: "fa fa-cog" - ).RequireFeatures(SettingManagementFeatures.Enable) - ); - } + context.Menu + .GetAdministration() + .AddItem( + new ApplicationMenuItem( + SettingManagementMenuNames.GroupName, + l["Settings"], + "~/SettingManagement", + icon: "fa fa-cog" + ).RequireFeatures(SettingManagementFeatures.Enable) + ); + } - protected virtual async Task CheckAnyOfPagePermissionsGranted( - SettingManagementPageOptions settingManagementPageOptions, - SettingPageCreationContext settingPageCreationContext) + protected virtual async Task CheckAnyOfPagePermissionsGranted( + SettingManagementPageOptions settingManagementPageOptions, + SettingPageCreationContext settingPageCreationContext) + { + foreach (var contributor in settingManagementPageOptions.Contributors) { - foreach (var contributor in settingManagementPageOptions.Contributors) + if (await contributor.CheckPermissionsAsync(settingPageCreationContext)) { - if (await contributor.CheckPermissionsAsync(settingPageCreationContext)) - { - return true; - } + return true; } - return false; } + return false; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMenuNames.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMenuNames.cs index 4c5af73abe..c7f45db0ab 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMenuNames.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Navigation/SettingManagementMenuNames.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.SettingManagement.Web.Navigation +namespace Volo.Abp.SettingManagement.Web.Navigation; + +public class SettingManagementMenuNames { - public class SettingManagementMenuNames - { - public const string GroupName = "SettingManagement"; - } + public const string GroupName = "SettingManagement"; } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs index c38a804d1a..bd0e8d924e 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs @@ -2,23 +2,22 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup; + +public class EmailSettingGroupViewComponent : AbpViewComponent { - public class EmailSettingGroupViewComponent : AbpViewComponent - { - protected IEmailSettingsAppService EmailSettingsAppService { get; } + protected IEmailSettingsAppService EmailSettingsAppService { get; } - public EmailSettingGroupViewComponent(IEmailSettingsAppService emailSettingsAppService) - { - ObjectMapperContext = typeof(AbpSettingManagementWebModule); - EmailSettingsAppService = emailSettingsAppService; - } + public EmailSettingGroupViewComponent(IEmailSettingsAppService emailSettingsAppService) + { + ObjectMapperContext = typeof(AbpSettingManagementWebModule); + EmailSettingsAppService = emailSettingsAppService; + } - public virtual async Task InvokeAsync() - { - var model = await EmailSettingsAppService.GetAsync(); + public virtual async Task InvokeAsync() + { + var model = await EmailSettingsAppService.GetAsync(); - return View("~/Pages/SettingManagement/Components/EmailSettingGroup/Default.cshtml", model); - } + return View("~/Pages/SettingManagement/Components/EmailSettingGroup/Default.cshtml", model); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/ISettingPageContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/ISettingPageContributor.cs index f6260cc816..4128e9cd05 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/ISettingPageContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/ISettingPageContributor.cs @@ -1,11 +1,10 @@ using System.Threading.Tasks; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement; + +public interface ISettingPageContributor { - public interface ISettingPageContributor - { - Task ConfigureAsync(SettingPageCreationContext context); + Task ConfigureAsync(SettingPageCreationContext context); - Task CheckPermissionsAsync(SettingPageCreationContext context); - } -} \ No newline at end of file + Task CheckPermissionsAsync(SettingPageCreationContext context); +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs index 656b71daec..bf0b3e0d6b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Index.cshtml.cs @@ -6,48 +6,47 @@ using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.EventBus.Local; using Volo.Abp.Features; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement; + +[RequiresFeature(SettingManagementFeatures.Enable)] +public class IndexModel : AbpPageModel { - [RequiresFeature(SettingManagementFeatures.Enable)] - public class IndexModel : AbpPageModel + public SettingPageCreationContext SettingPageCreationContext { get; private set; } + + protected ILocalEventBus LocalEventBus { get; } + protected SettingManagementPageOptions Options { get; } + + public IndexModel( + IOptions options, + ILocalEventBus localEventBus) { - public SettingPageCreationContext SettingPageCreationContext { get; private set; } + LocalEventBus = localEventBus; + Options = options.Value; + } - protected ILocalEventBus LocalEventBus { get; } - protected SettingManagementPageOptions Options { get; } + public virtual async Task OnGetAsync() + { + SettingPageCreationContext = new SettingPageCreationContext(ServiceProvider); - public IndexModel( - IOptions options, - ILocalEventBus localEventBus) + foreach (var contributor in Options.Contributors) { - LocalEventBus = localEventBus; - Options = options.Value; + await contributor.ConfigureAsync(SettingPageCreationContext); } - public virtual async Task OnGetAsync() - { - SettingPageCreationContext = new SettingPageCreationContext(ServiceProvider); - - foreach (var contributor in Options.Contributors) - { - await contributor.ConfigureAsync(SettingPageCreationContext); - } - - return Page(); - } + return Page(); + } - public virtual Task OnPostAsync() - { - return Task.FromResult(Page()); - } + public virtual Task OnPostAsync() + { + return Task.FromResult(Page()); + } - public virtual async Task OnPostRefreshConfigurationAsync() - { - await LocalEventBus.PublishAsync( - new CurrentApplicationConfigurationCacheResetEventData() - ); + public virtual async Task OnPostRefreshConfigurationAsync() + { + await LocalEventBus.PublishAsync( + new CurrentApplicationConfigurationCacheResetEventData() + ); - return NoContent(); - } + return NoContent(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingManagementPageOptions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingManagementPageOptions.cs index 7dc50af16f..fb212da1c6 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingManagementPageOptions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingManagementPageOptions.cs @@ -1,14 +1,13 @@ using System.Collections.Generic; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement; + +public class SettingManagementPageOptions { - public class SettingManagementPageOptions - { - public List Contributors { get; } + public List Contributors { get; } - public SettingManagementPageOptions() - { - Contributors = new List(); - } + public SettingManagementPageOptions() + { + Contributors = new List(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs index b8979e9299..c929fef16d 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs @@ -2,19 +2,18 @@ using System.Collections.Generic; using Volo.Abp.DependencyInjection; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement; + +public class SettingPageCreationContext : IServiceProviderAccessor { - public class SettingPageCreationContext : IServiceProviderAccessor - { - public IServiceProvider ServiceProvider { get; } + public IServiceProvider ServiceProvider { get; } - public List Groups { get; } + public List Groups { get; } - public SettingPageCreationContext(IServiceProvider serviceProvider) - { - ServiceProvider = serviceProvider; + public SettingPageCreationContext(IServiceProvider serviceProvider) + { + ServiceProvider = serviceProvider; - Groups = new List(); - } + Groups = new List(); } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs index f6fae8726d..2dbc6eb4de 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs @@ -1,39 +1,35 @@ using System; using JetBrains.Annotations; -namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement; + +public class SettingPageGroup { - public class SettingPageGroup - { - public string Id - { - get => _id; - set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id)); - } - private string _id; + public string Id { + get => _id; + set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id)); + } + private string _id; - public string DisplayName - { - get => _displayName; - set => _displayName = Check.NotNullOrWhiteSpace(value, nameof(DisplayName)); - } - private string _displayName; + public string DisplayName { + get => _displayName; + set => _displayName = Check.NotNullOrWhiteSpace(value, nameof(DisplayName)); + } + private string _displayName; - public Type ComponentType - { - get => _componentType; - set => _componentType = Check.NotNull(value, nameof(ComponentType)); - } - private Type _componentType; + public Type ComponentType { + get => _componentType; + set => _componentType = Check.NotNull(value, nameof(ComponentType)); + } + private Type _componentType; - public object Parameter { get; set; } + public object Parameter { get; set; } - public SettingPageGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null) - { - Id = id; - DisplayName = displayName; - ComponentType = componentType; - Parameter = parameter; - } + public SettingPageGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null) + { + Id = id; + DisplayName = displayName; + ComponentType = componentType; + Parameter = parameter; } -} \ No newline at end of file +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Properties/launchSettings.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Properties/launchSettings.json new file mode 100644 index 0000000000..5f053009f3 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:50943/", + "sslPort": 44372 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Abp.SettingManagement.Web": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:5001;http://localhost:5000" + } + } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs index dd596cab16..35e6714b9f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs @@ -8,58 +8,57 @@ using Volo.Abp.SettingManagement.Localization; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup; -namespace Volo.Abp.SettingManagement.Web.Settings +namespace Volo.Abp.SettingManagement.Web.Settings; + +public class EmailingPageContributor : ISettingPageContributor { - public class EmailingPageContributor: ISettingPageContributor + public async Task ConfigureAsync(SettingPageCreationContext context) { - public async Task ConfigureAsync(SettingPageCreationContext context) + if (!await CheckPermissionsInternalAsync(context)) { - if (!await CheckPermissionsInternalAsync(context)) - { - return; - } - - var l = context.ServiceProvider.GetRequiredService>(); - context.Groups.Add( - new SettingPageGroup( - "Volo.Abp.EmailSetting", - l["Menu:Emailing"], - typeof(EmailSettingGroupViewComponent) - ) - ); + return; } - public async Task CheckPermissionsAsync(SettingPageCreationContext context) + var l = context.ServiceProvider.GetRequiredService>(); + context.Groups.Add( + new SettingPageGroup( + "Volo.Abp.EmailSetting", + l["Menu:Emailing"], + typeof(EmailSettingGroupViewComponent) + ) + ); + } + + public async Task CheckPermissionsAsync(SettingPageCreationContext context) + { + return await CheckPermissionsInternalAsync(context); + } + + private async Task CheckPermissionsInternalAsync(SettingPageCreationContext context) + { + if (!await CheckFeatureAsync(context)) { - return await CheckPermissionsInternalAsync(context); + return false; } - private async Task CheckPermissionsInternalAsync(SettingPageCreationContext context) - { - if (!await CheckFeatureAsync(context)) - { - return false; - } + var authorizationService = context.ServiceProvider.GetRequiredService(); - var authorizationService = context.ServiceProvider.GetRequiredService(); + return await authorizationService.IsGrantedAsync(SettingManagementPermissions.Emailing); + } - return await authorizationService.IsGrantedAsync(SettingManagementPermissions.Emailing); + private async Task CheckFeatureAsync(SettingPageCreationContext context) + { + var featureCheck = context.ServiceProvider.GetRequiredService(); + if (!await featureCheck.IsEnabledAsync(SettingManagementFeatures.Enable)) + { + return false; } - private async Task CheckFeatureAsync(SettingPageCreationContext context) + if (context.ServiceProvider.GetRequiredService().IsAvailable) { - var featureCheck = context.ServiceProvider.GetRequiredService(); - if (!await featureCheck.IsEnabledAsync(SettingManagementFeatures.Enable)) - { - return false; - } - - if (context.ServiceProvider.GetRequiredService().IsAvailable) - { - return await featureCheck.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); - } - - return true; + return await featureCheck.IsEnabledAsync(SettingManagementFeatures.AllowTenantsToChangeEmailSettings); } + + return true; } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs index a885e806b7..3e251fef2c 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/AbpSettingManagementEntityFrameworkCoreTestModule.cs @@ -7,38 +7,37 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.Modularity; -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +[DependsOn( + typeof(AbpSettingManagementTestBaseModule), + typeof(AbpSettingManagementEntityFrameworkCoreModule), + typeof(AbpEntityFrameworkCoreSqliteModule) + )] +public class AbpSettingManagementEntityFrameworkCoreTestModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementTestBaseModule), - typeof(AbpSettingManagementEntityFrameworkCoreModule), - typeof(AbpEntityFrameworkCoreSqliteModule) - )] - public class AbpSettingManagementEntityFrameworkCoreTestModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var sqliteConnection = CreateDatabaseAndGetConnection(); + var sqliteConnection = CreateDatabaseAndGetConnection(); - Configure(options => + Configure(options => + { + options.Configure(abpDbContextConfigurationContext => { - options.Configure(abpDbContextConfigurationContext => - { - abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); - }); + abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); }); - } + }); + } - private static SqliteConnection CreateDatabaseAndGetConnection() - { - var connection = new SqliteConnection("Data Source=:memory:"); - connection.Open(); + private static SqliteConnection CreateDatabaseAndGetConnection() + { + var connection = new SqliteConnection("Data Source=:memory:"); + connection.Open(); - new SettingManagementDbContext( - new DbContextOptionsBuilder().UseSqlite(connection).Options - ).GetService().CreateTables(); + new SettingManagementDbContext( + new DbContextOptionsBuilder().UseSqlite(connection).Options + ).GetService().CreateTables(); - return connection; - } + return connection; } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingRepository_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingRepository_Tests.cs index 19ceb328a6..da75e7bb91 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingRepository_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo/Abp/SettingManagement/EntityFrameworkCore/SettingRepository_Tests.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.SettingManagement.EntityFrameworkCore +namespace Volo.Abp.SettingManagement.EntityFrameworkCore; + +public class SettingRepository_Tests : SettingRepository_Tests { - public class SettingRepository_Tests : SettingRepository_Tests - { - } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs index 8b022c63bf..f64f91b1eb 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs @@ -3,25 +3,24 @@ using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.Uow; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[DependsOn( + typeof(AbpSettingManagementMongoDbModule), + typeof(AbpSettingManagementTestBaseModule) + )] +public class AbpSettingManagementMongoDbTestModule : AbpModule { - [DependsOn( - typeof(AbpSettingManagementMongoDbModule), - typeof(AbpSettingManagementTestBaseModule) - )] - public class AbpSettingManagementMongoDbTestModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var stringArray = MongoDbFixture.ConnectionString.Split('?'); - var connectionString = stringArray[0].EnsureEndsWith('/') + - "Db_" + - Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; + var stringArray = MongoDbFixture.ConnectionString.Split('?'); + var connectionString = stringArray[0].EnsureEndsWith('/') + + "Db_" + + Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); - } + Configure(options => + { + options.ConnectionStrings.Default = connectionString; + }); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs index 8db91a3e72..d5cefa9a23 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs @@ -1,22 +1,21 @@ using System; using Mongo2Go; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +public class MongoDbFixture : IDisposable { - public class MongoDbFixture : IDisposable - { - private static readonly MongoDbRunner MongoDbRunner; - public static readonly string ConnectionString; + private static readonly MongoDbRunner MongoDbRunner; + public static readonly string ConnectionString; - static MongoDbFixture() - { - MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 20); - ConnectionString = MongoDbRunner.ConnectionString; - } + static MongoDbFixture() + { + MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 20); + ConnectionString = MongoDbRunner.ConnectionString; + } - public void Dispose() - { - MongoDbRunner?.Dispose(); - } + public void Dispose() + { + MongoDbRunner?.Dispose(); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs index 11ed1cbb55..e3c6becf6f 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoTestCollection.cs @@ -1,10 +1,9 @@ using Xunit; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[CollectionDefinition(Name)] +public class MongoTestCollection : ICollectionFixture { - [CollectionDefinition(Name)] - public class MongoTestCollection : ICollectionFixture - { - public const string Name = "MongoDB Collection"; - } -} \ No newline at end of file + public const string Name = "MongoDB Collection"; +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs index a1a2d1428c..b5ba258900 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/SettingRepository_Tests.cs @@ -1,10 +1,9 @@ using Xunit; -namespace Volo.Abp.SettingManagement.MongoDB +namespace Volo.Abp.SettingManagement.MongoDB; + +[Collection(MongoTestCollection.Name)] +public class SettingRepository_Tests : SettingRepository_Tests { - [Collection(MongoTestCollection.Name)] - public class SettingRepository_Tests : SettingRepository_Tests - { - } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/AbpSettingManagementTestBaseModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/AbpSettingManagementTestBaseModule.cs index 058bd8ff49..b70aa5e657 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/AbpSettingManagementTestBaseModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/AbpSettingManagementTestBaseModule.cs @@ -4,27 +4,26 @@ using Volo.Abp.Modularity; using Volo.Abp.Settings; using Volo.Abp.Threading; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpTestBaseModule), + typeof(AbpSettingManagementDomainModule))] +public class AbpSettingManagementTestBaseModule : AbpModule { - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpTestBaseModule), - typeof(AbpSettingManagementDomainModule))] - public class AbpSettingManagementTestBaseModule : AbpModule + public override void OnApplicationInitialization(ApplicationInitializationContext context) { - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - SeedTestData(context); - } + SeedTestData(context); + } - private static void SeedTestData(ApplicationInitializationContext context) + private static void SeedTestData(ApplicationInitializationContext context) + { + using (var scope = context.ServiceProvider.CreateScope()) { - using (var scope = context.ServiceProvider.CreateScope()) - { - AsyncHelper.RunSync(()=> scope.ServiceProvider - .GetRequiredService() - .BuildAsync()); - } + AsyncHelper.RunSync(() => scope.ServiceProvider + .GetRequiredService() + .BuildAsync()); } } -} \ No newline at end of file +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingManagementTestBase.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingManagementTestBase.cs index 002c1b95da..b1a141b068 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingManagementTestBase.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingManagementTestBase.cs @@ -1,14 +1,13 @@ using Volo.Abp.Modularity; using Volo.Abp.Testing; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementTestBase : AbpIntegratedTest + where TStartupModule : IAbpModule { - public class SettingManagementTestBase : AbpIntegratedTest - where TStartupModule : IAbpModule + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) { - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } + options.UseAutofac(); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingRepository_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingRepository_Tests.cs index 1d448f3154..8422301641 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingRepository_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingRepository_Tests.cs @@ -5,58 +5,57 @@ using Volo.Abp.Modularity; using Volo.Abp.Settings; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public abstract class SettingRepository_Tests : SettingManagementTestBase + where TStartupModule : IAbpModule { - public abstract class SettingRepository_Tests : SettingManagementTestBase - where TStartupModule : IAbpModule + protected ISettingRepository SettingRepository { get; } + protected SettingTestData TestData { get; } + + protected SettingRepository_Tests() + { + SettingRepository = GetRequiredService(); + TestData = GetRequiredService(); + } + + [Fact] + public async Task FindAsync() + { + (await SettingRepository.FindAsync( + "MySetting1", + GlobalSettingValueProvider.ProviderName, + null + )).Value.ShouldBe("42"); + + (await SettingRepository.FindAsync( + "MySetting2", + UserSettingValueProvider.ProviderName, + TestData.User1Id.ToString() + )).Value.ShouldBe("user1-store-value"); + + (await SettingRepository.FindAsync( + "Undefined-Setting", + GlobalSettingValueProvider.ProviderName, + null + )).ShouldBeNull(); + } + + [Fact] + public async Task GetListAsync() + { + var settings = await SettingRepository.GetListAsync(GlobalSettingValueProvider.ProviderName, null); + settings.Any().ShouldBeTrue(); + settings.ShouldContain(s => s.Name == "MySetting1" && s.Value == "42"); + settings.ShouldContain(s => s.Name == "MySetting2" && s.Value == "default-store-value"); + } + + [Fact] + public async Task GetList_With_Names() { - protected ISettingRepository SettingRepository { get; } - protected SettingTestData TestData { get; } - - protected SettingRepository_Tests() - { - SettingRepository = GetRequiredService(); - TestData = GetRequiredService(); - } - - [Fact] - public async Task FindAsync() - { - (await SettingRepository.FindAsync( - "MySetting1", - GlobalSettingValueProvider.ProviderName, - null - )).Value.ShouldBe("42"); - - (await SettingRepository.FindAsync( - "MySetting2", - UserSettingValueProvider.ProviderName, - TestData.User1Id.ToString() - )).Value.ShouldBe("user1-store-value"); - - (await SettingRepository.FindAsync( - "Undefined-Setting", - GlobalSettingValueProvider.ProviderName, - null - )).ShouldBeNull(); - } - - [Fact] - public async Task GetListAsync() - { - var settings = await SettingRepository.GetListAsync(GlobalSettingValueProvider.ProviderName, null); - settings.Any().ShouldBeTrue(); - settings.ShouldContain(s => s.Name == "MySetting1" && s.Value == "42"); - settings.ShouldContain(s => s.Name == "MySetting2" && s.Value == "default-store-value"); - } - - [Fact] - public async Task GetList_With_Names() - { - var settings = await SettingRepository.GetListAsync(new []{"MySetting1", "MySetting2"} ,GlobalSettingValueProvider.ProviderName, null); - settings.Any().ShouldBeTrue(); - settings.ShouldContain(s => s.Name == "MySetting1" && s.Value == "42"); - settings.ShouldContain(s => s.Name == "MySetting2" && s.Value == "default-store-value"); - } + var settings = await SettingRepository.GetListAsync(new[] { "MySetting1", "MySetting2" }, GlobalSettingValueProvider.ProviderName, null); + settings.Any().ShouldBeTrue(); + settings.ShouldContain(s => s.Name == "MySetting1" && s.Value == "42"); + settings.ShouldContain(s => s.Name == "MySetting2" && s.Value == "default-store-value"); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestData.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestData.cs index 5b93721110..7db01d004c 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestData.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestData.cs @@ -1,13 +1,12 @@ using System; using Volo.Abp.DependencyInjection; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingTestData : ISingletonDependency { - public class SettingTestData : ISingletonDependency - { - public Guid User1Id { get; } = Guid.NewGuid(); - public Guid User2Id { get; } = Guid.NewGuid(); + public Guid User1Id { get; } = Guid.NewGuid(); + public Guid User2Id { get; } = Guid.NewGuid(); - public Guid SettingId { get; } = Guid.NewGuid(); - } -} \ No newline at end of file + public Guid SettingId { get; } = Guid.NewGuid(); +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs index a4a0b32a03..30306be6a6 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/SettingTestDataBuilder.cs @@ -3,82 +3,81 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Guids; using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingTestDataBuilder : ITransientDependency { - public class SettingTestDataBuilder : ITransientDependency - { - private readonly ISettingRepository _settingRepository; - private readonly IGuidGenerator _guidGenerator; - private readonly SettingTestData _testData; + private readonly ISettingRepository _settingRepository; + private readonly IGuidGenerator _guidGenerator; + private readonly SettingTestData _testData; - public SettingTestDataBuilder( - ISettingRepository settingRepository, - IGuidGenerator guidGenerator, - SettingTestData testData) - { - _settingRepository = settingRepository; - _guidGenerator = guidGenerator; - _testData = testData; - } + public SettingTestDataBuilder( + ISettingRepository settingRepository, + IGuidGenerator guidGenerator, + SettingTestData testData) + { + _settingRepository = settingRepository; + _guidGenerator = guidGenerator; + _testData = testData; + } - public async Task BuildAsync() - { - await _settingRepository.InsertAsync( - new Setting( - _testData.SettingId, - "MySetting1", - "42", - GlobalSettingValueProvider.ProviderName - ) - ); + public async Task BuildAsync() + { + await _settingRepository.InsertAsync( + new Setting( + _testData.SettingId, + "MySetting1", + "42", + GlobalSettingValueProvider.ProviderName + ) + ); - await _settingRepository.InsertAsync( - new Setting( - _guidGenerator.Create(), - "MySetting2", - "default-store-value", - GlobalSettingValueProvider.ProviderName - ) - ); + await _settingRepository.InsertAsync( + new Setting( + _guidGenerator.Create(), + "MySetting2", + "default-store-value", + GlobalSettingValueProvider.ProviderName + ) + ); - await _settingRepository.InsertAsync( - new Setting( - _guidGenerator.Create(), - "MySetting2", - "user1-store-value", - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString() - ) - ); + await _settingRepository.InsertAsync( + new Setting( + _guidGenerator.Create(), + "MySetting2", + "user1-store-value", + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString() + ) + ); - await _settingRepository.InsertAsync( - new Setting( - _guidGenerator.Create(), - "MySetting2", - "user2-store-value", - UserSettingValueProvider.ProviderName, - _testData.User2Id.ToString() - ) - ); + await _settingRepository.InsertAsync( + new Setting( + _guidGenerator.Create(), + "MySetting2", + "user2-store-value", + UserSettingValueProvider.ProviderName, + _testData.User2Id.ToString() + ) + ); - await _settingRepository.InsertAsync( - new Setting( - _guidGenerator.Create(), - "MySettingWithoutInherit", - "default-store-value", - GlobalSettingValueProvider.ProviderName - ) - ); + await _settingRepository.InsertAsync( + new Setting( + _guidGenerator.Create(), + "MySettingWithoutInherit", + "default-store-value", + GlobalSettingValueProvider.ProviderName + ) + ); - await _settingRepository.InsertAsync( - new Setting( - _guidGenerator.Create(), - "MySettingWithoutInherit", - "user1-store-value", - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString() - ) - ); - } + await _settingRepository.InsertAsync( + new Setting( + _guidGenerator.Create(), + "MySettingWithoutInherit", + "user1-store-value", + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString() + ) + ); } -} \ No newline at end of file +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/TestSettingDefinitionProvider.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/TestSettingDefinitionProvider.cs index 950d0b5d2b..c19d044d8e 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/TestSettingDefinitionProvider.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo/Abp/SettingManagement/TestSettingDefinitionProvider.cs @@ -1,18 +1,17 @@ using Volo.Abp.Settings; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class TestSettingDefinitionProvider : SettingDefinitionProvider { - public class TestSettingDefinitionProvider : SettingDefinitionProvider + public override void Define(ISettingDefinitionContext context) { - public override void Define(ISettingDefinitionContext context) - { - context.Add(new SettingDefinition("MySetting1")); - context.Add(new SettingDefinition("MySetting2")); - context.Add(new SettingDefinition("MySetting3", "123")); - context.Add(new SettingDefinition("MySettingWithoutInherit", isInherited: false)); - context.Add(new SettingDefinition("SettingNotSetInStore", defaultValue: "default-value")); + context.Add(new SettingDefinition("MySetting1")); + context.Add(new SettingDefinition("MySetting2")); + context.Add(new SettingDefinition("MySetting3", "123")); + context.Add(new SettingDefinition("MySettingWithoutInherit", isInherited: false)); + context.Add(new SettingDefinition("SettingNotSetInStore", defaultValue: "default-value")); + - - } } -} \ No newline at end of file +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/AbpSettingManagementTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/AbpSettingManagementTestModule.cs index cdc87600e4..a404432f7a 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/AbpSettingManagementTestModule.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/AbpSettingManagementTestModule.cs @@ -2,13 +2,12 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.Users; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +[DependsOn( + typeof(AbpSettingManagementEntityFrameworkCoreTestModule), + typeof(AbpUsersAbstractionModule))] +public class AbpSettingManagementTestModule : AbpModule //TODO: Rename to Volo.Abp.SettingManagement.Domain.Tests..? { - [DependsOn( - typeof(AbpSettingManagementEntityFrameworkCoreTestModule), - typeof(AbpUsersAbstractionModule))] - public class AbpSettingManagementTestModule : AbpModule //TODO: Rename to Volo.Abp.SettingManagement.Domain.Tests..? - { - - } + } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider_Tests.cs index 20263a73c9..f13019ab16 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/DefaultValueSettingManagementProvider_Tests.cs @@ -3,44 +3,43 @@ using Shouldly; using Volo.Abp.Settings; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class DefaultValueSettingManagementProvider_Tests : SettingsTestBase { - public class DefaultValueSettingManagementProvider_Tests : SettingsTestBase - { - private readonly ISettingDefinitionManager _settingDefinitionManager; + private readonly ISettingDefinitionManager _settingDefinitionManager; - public DefaultValueSettingManagementProvider_Tests() - { - _settingDefinitionManager = GetRequiredService(); - } + public DefaultValueSettingManagementProvider_Tests() + { + _settingDefinitionManager = GetRequiredService(); + } - [Fact] - public async Task GetOrNullAsync() - { - var mySetting3 = _settingDefinitionManager.Get("MySetting3"); + [Fact] + public async Task GetOrNullAsync() + { + var mySetting3 = _settingDefinitionManager.Get("MySetting3"); - var defaultValueSettingManagementProvider = new DefaultValueSettingManagementProvider(); - (await defaultValueSettingManagementProvider - .GetOrNullAsync(mySetting3, DefaultValueSettingValueProvider.ProviderName)).ShouldBe("123"); - } + var defaultValueSettingManagementProvider = new DefaultValueSettingManagementProvider(); + (await defaultValueSettingManagementProvider + .GetOrNullAsync(mySetting3, DefaultValueSettingValueProvider.ProviderName)).ShouldBe("123"); + } - [Fact] - public async Task SetAsync() - { - var mySetting3 = _settingDefinitionManager.Get("MySetting3"); + [Fact] + public async Task SetAsync() + { + var mySetting3 = _settingDefinitionManager.Get("MySetting3"); - await Assert.ThrowsAsync(async () => await new DefaultValueSettingManagementProvider().SetAsync(mySetting3, "123", - DefaultValueSettingValueProvider.ProviderName)); - } + await Assert.ThrowsAsync(async () => await new DefaultValueSettingManagementProvider().SetAsync(mySetting3, "123", + DefaultValueSettingValueProvider.ProviderName)); + } - [Fact] - public async Task ClearAsync() - { - var mySetting3 = _settingDefinitionManager.Get("MySetting3"); + [Fact] + public async Task ClearAsync() + { + var mySetting3 = _settingDefinitionManager.Get("MySetting3"); - await Assert.ThrowsAsync(async () => - await new DefaultValueSettingManagementProvider().ClearAsync(mySetting3, - DefaultValueSettingValueProvider.ProviderName)); - } + await Assert.ThrowsAsync(async () => + await new DefaultValueSettingManagementProvider().ClearAsync(mySetting3, + DefaultValueSettingValueProvider.ProviderName)); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItemInvalidator_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItemInvalidator_Tests.cs index 4a501f58e8..b300900d5b 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItemInvalidator_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItemInvalidator_Tests.cs @@ -6,77 +6,76 @@ using Volo.Abp.MultiTenancy; using Volo.Abp.Settings; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingCacheItemInvalidator_Tests : SettingsTestBase { - public class SettingCacheItemInvalidator_Tests : SettingsTestBase + private readonly IDistributedCache _cache; + private readonly ISettingManagementStore _settingManagementStore; + private readonly ISettingRepository _settingRepository; + private readonly SettingTestData _testData; + private readonly ICurrentTenant _currentTenant; + + public SettingCacheItemInvalidator_Tests() + { + _settingManagementStore = GetRequiredService(); + _cache = GetRequiredService>(); + _settingRepository = GetRequiredService(); + _testData = GetRequiredService(); + _currentTenant = GetRequiredService(); + } + + [Fact] + public async Task GetOrNullAsync_Should_Cached() + { + // Act + (await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldBeNull(); + await _settingManagementStore.GetOrNullAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); + (await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldNotBeNull(); + } + + [Fact] + public async Task Cache_Should_Invalidator_WhenSettingChanged() { - private readonly IDistributedCache _cache; - private readonly ISettingManagementStore _settingManagementStore; - private readonly ISettingRepository _settingRepository; - private readonly SettingTestData _testData; - private readonly ICurrentTenant _currentTenant; + // Arrange + // GetOrNullAsync will cache language. + await _settingManagementStore.GetOrNullAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); + + // Act + var lang = await _settingRepository.FindAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); + await _settingRepository.DeleteAsync(lang); - public SettingCacheItemInvalidator_Tests() + // Assert + (await _cache.GetAsync( + SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldBeNull(); + } + + [Fact] + public async Task Cache_Should_Invalidator_WhenSettingChanged_Between_Tenant_And_Host() + { + var tenantId = Guid.NewGuid(); + + using (_currentTenant.Change(tenantId)) { - _settingManagementStore = GetRequiredService(); - _cache = GetRequiredService>(); - _settingRepository = GetRequiredService(); - _testData = GetRequiredService(); - _currentTenant = GetRequiredService(); + // GetOrNullAsync will cache language. + await _settingManagementStore + .GetOrNullAsync("MySetting2", GlobalSettingValueProvider.ProviderName, null) + ; } - [Fact] - public async Task GetOrNullAsync_Should_Cached() + using (_currentTenant.Change(null)) { - // Act - (await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldBeNull(); - await _settingManagementStore.GetOrNullAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); - (await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldNotBeNull(); + // SetAsync will make cache invalid. + await _settingManagementStore + .SetAsync("MySetting2", "MySetting2Value", GlobalSettingValueProvider.ProviderName, null); } - [Fact] - public async Task Cache_Should_Invalidator_WhenSettingChanged() + using (_currentTenant.Change(tenantId)) { - // Arrange - // GetOrNullAsync will cache language. - await _settingManagementStore.GetOrNullAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); - - // Act - var lang = await _settingRepository.FindAsync("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()); - await _settingRepository.DeleteAsync(lang); - // Assert (await _cache.GetAsync( - SettingCacheItem.CalculateCacheKey("MySetting2", UserSettingValueProvider.ProviderName, _testData.User1Id.ToString()))).ShouldBeNull(); - } - - [Fact] - public async Task Cache_Should_Invalidator_WhenSettingChanged_Between_Tenant_And_Host() - { - var tenantId = Guid.NewGuid(); - - using (_currentTenant.Change(tenantId)) - { - // GetOrNullAsync will cache language. - await _settingManagementStore - .GetOrNullAsync("MySetting2", GlobalSettingValueProvider.ProviderName, null) - ; - } - - using (_currentTenant.Change(null)) - { - // SetAsync will make cache invalid. - await _settingManagementStore - .SetAsync("MySetting2", "MySetting2Value", GlobalSettingValueProvider.ProviderName, null); - } - - using (_currentTenant.Change(tenantId)) - { - // Assert - (await _cache.GetAsync( - SettingCacheItem.CalculateCacheKey("MySetting2", GlobalSettingValueProvider.ProviderName, null)) - ).ShouldBeNull(); - } + SettingCacheItem.CalculateCacheKey("MySetting2", GlobalSettingValueProvider.ProviderName, null)) + ).ShouldBeNull(); } } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItem_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItem_Tests.cs index 390851e08e..a69038cea0 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItem_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingCacheItem_Tests.cs @@ -1,16 +1,15 @@ using Shouldly; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingCacheItem_Tests { - public class SettingCacheItem_Tests + [Fact] + public void GetSettingNameFormCacheKeyOrNull() { - [Fact] - public void GetSettingNameFormCacheKeyOrNull() - { - var key = SettingCacheItem.CalculateCacheKey("aaa", "bbb", "ccc"); - SettingCacheItem.GetSettingNameFormCacheKeyOrNull(key).ShouldBe("aaa"); - SettingCacheItem.GetSettingNameFormCacheKeyOrNull("aaabbbccc").ShouldBeNull(); - } + var key = SettingCacheItem.CalculateCacheKey("aaa", "bbb", "ccc"); + SettingCacheItem.GetSettingNameFormCacheKeyOrNull(key).ShouldBe("aaa"); + SettingCacheItem.GetSettingNameFormCacheKeyOrNull("aaabbbccc").ShouldBeNull(); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs index 1ccadef252..23acc4e718 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs @@ -8,113 +8,112 @@ using Volo.Abp.Settings; using Volo.Abp.Uow; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManagementStore_Tests : SettingsTestBase { - public class SettingManagementStore_Tests : SettingsTestBase - { - private readonly ISettingManagementStore _settingManagementStore; - private readonly ISettingRepository _settingRepository; - private readonly SettingTestData _testData; - private readonly IUnitOfWorkManager _unitOfWorkManager; + private readonly ISettingManagementStore _settingManagementStore; + private readonly ISettingRepository _settingRepository; + private readonly SettingTestData _testData; + private readonly IUnitOfWorkManager _unitOfWorkManager; - public SettingManagementStore_Tests() - { - _settingManagementStore = GetRequiredService(); - _settingRepository = GetRequiredService(); - _testData = GetRequiredService(); - _unitOfWorkManager= GetRequiredService(); - } + public SettingManagementStore_Tests() + { + _settingManagementStore = GetRequiredService(); + _settingRepository = GetRequiredService(); + _testData = GetRequiredService(); + _unitOfWorkManager = GetRequiredService(); + } - [Fact] - public async Task GetOrNull_NotExist_Should_Be_Null() - { - var value = await _settingManagementStore.GetOrNullAsync("notExistName", "notExistProviderName", - "notExistProviderKey"); + [Fact] + public async Task GetOrNull_NotExist_Should_Be_Null() + { + var value = await _settingManagementStore.GetOrNullAsync("notExistName", "notExistProviderName", + "notExistProviderKey"); - value.ShouldBeNull(); - } + value.ShouldBeNull(); + } - [Fact] - public async Task GetOrNullAsync() - { - var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + [Fact] + public async Task GetOrNullAsync() + { + var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - value.ShouldNotBeNull(); - value.ShouldBe("42"); - } + value.ShouldNotBeNull(); + value.ShouldBe("42"); + } - [Fact] - public async Task SetAsync() - { - var setting = await _settingRepository.FindAsync(_testData.SettingId); - setting.Value.ShouldBe("42"); + [Fact] + public async Task SetAsync() + { + var setting = await _settingRepository.FindAsync(_testData.SettingId); + setting.Value.ShouldBe("42"); - await _settingManagementStore.SetAsync("MySetting1", "43", GlobalSettingValueProvider.ProviderName, null); + await _settingManagementStore.SetAsync("MySetting1", "43", GlobalSettingValueProvider.ProviderName, null); - (await _settingRepository.FindAsync(_testData.SettingId)).Value.ShouldBe("43"); - } + (await _settingRepository.FindAsync(_testData.SettingId)).Value.ShouldBe("43"); + } - [Fact] - public async Task Set_In_UnitOfWork_Should_Be_Consistent() + [Fact] + public async Task Set_In_UnitOfWork_Should_Be_Consistent() + { + using (_unitOfWorkManager.Begin()) { - using (_unitOfWorkManager.Begin()) - { - var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - value.ShouldBe("42"); + var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + value.ShouldBe("42"); - await _settingManagementStore.SetAsync("MySetting1", "43", GlobalSettingValueProvider.ProviderName, null); + await _settingManagementStore.SetAsync("MySetting1", "43", GlobalSettingValueProvider.ProviderName, null); - var valueAfterSet = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - valueAfterSet.ShouldBe("43"); - } + var valueAfterSet = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + valueAfterSet.ShouldBe("43"); } + } - [Fact] - public async Task DeleteAsync() - { - (await _settingRepository.FindAsync(_testData.SettingId)).ShouldNotBeNull(); + [Fact] + public async Task DeleteAsync() + { + (await _settingRepository.FindAsync(_testData.SettingId)).ShouldNotBeNull(); - await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - (await _settingRepository.FindAsync(_testData.SettingId)).ShouldBeNull(); - } + (await _settingRepository.FindAsync(_testData.SettingId)).ShouldBeNull(); + } - [Fact] - public async Task Delete_In_UnitOfWork_Should_Be_Consistent() + [Fact] + public async Task Delete_In_UnitOfWork_Should_Be_Consistent() + { + using (var uow = _unitOfWorkManager.Begin()) { - using (var uow = _unitOfWorkManager.Begin()) - { - (await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null)).ShouldNotBeNull(); + (await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null)).ShouldNotBeNull(); - await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - await uow.SaveChangesAsync(); + await uow.SaveChangesAsync(); - var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); - value.ShouldBeNull(); - } + var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + value.ShouldBeNull(); } + } - [Fact] - public async Task GetListAsync() - { - var result = await _settingManagementStore.GetListAsync( - new[] - { + [Fact] + public async Task GetListAsync() + { + var result = await _settingManagementStore.GetListAsync( + new[] + { "MySetting1", "MySetting2", "MySetting3", "notExistName" - }, - GlobalSettingValueProvider.ProviderName, - null); + }, + GlobalSettingValueProvider.ProviderName, + null); - result.Count.ShouldBe(4); + result.Count.ShouldBe(4); - result.First(x => x.Name == "MySetting1").Value.ShouldBe("42"); - result.First(x => x.Name == "MySetting2").Value.ShouldBe("default-store-value"); - result.First(x => x.Name == "MySetting3").Value.ShouldBe(null); - result.First(x => x.Name == "notExistName").Value.ShouldBe(null); - } + result.First(x => x.Name == "MySetting1").Value.ShouldBe("42"); + result.First(x => x.Name == "MySetting2").Value.ShouldBe("default-store-value"); + result.First(x => x.Name == "MySetting3").Value.ShouldBe(null); + result.First(x => x.Name == "notExistName").Value.ShouldBe(null); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs index 1dafc31570..1442126fe6 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs @@ -3,56 +3,55 @@ using Shouldly; using Volo.Abp.Settings; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManager_Basic_Tests : SettingsTestBase { - public class SettingManager_Basic_Tests : SettingsTestBase + private readonly ISettingManager _settingManager; + private readonly ISettingProvider _settingProvider; + + public SettingManager_Basic_Tests() + { + _settingManager = GetRequiredService(); + _settingProvider = GetRequiredService(); + } + + [Fact] + public async Task Should_Throw_Exception_When_Try_To_Get_An_Undefined_Setting() + { + await Assert.ThrowsAsync( + async () => await _settingProvider.GetOrNullAsync("UndefinedSetting") + ); + } + + [Fact] + public async Task Should_Get_Default_Value_If_Not_Set_In_Store() + { + var value = await _settingProvider.GetOrNullAsync("SettingNotSetInStore"); + value.ShouldBe("default-value"); + } + + [Fact] + public async Task Should_Get_Base_Store_Value() + { + (await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("42"); + } + + [Fact] + public async Task Should_Get_All_Base_Store_Values() { - private readonly ISettingManager _settingManager; - private readonly ISettingProvider _settingProvider; - - public SettingManager_Basic_Tests() - { - _settingManager = GetRequiredService(); - _settingProvider = GetRequiredService(); - } - - [Fact] - public async Task Should_Throw_Exception_When_Try_To_Get_An_Undefined_Setting() - { - await Assert.ThrowsAsync( - async () => await _settingProvider.GetOrNullAsync("UndefinedSetting") - ); - } - - [Fact] - public async Task Should_Get_Default_Value_If_Not_Set_In_Store() - { - var value = await _settingProvider.GetOrNullAsync("SettingNotSetInStore"); - value.ShouldBe("default-value"); - } - - [Fact] - public async Task Should_Get_Base_Store_Value() - { - (await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("42"); - } - - [Fact] - public async Task Should_Get_All_Base_Store_Values() - { - var settingValues = await _settingProvider.GetAllAsync(); - settingValues.ShouldContain(sv => sv.Name == "MySetting1" && sv.Value == "42"); - settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "default-store-value"); - settingValues.ShouldContain(sv => sv.Name == "SettingNotSetInStore" && sv.Value == "default-value"); - } - - [Fact] - public async Task Should_Set_Global_Value() - { - await _settingManager.SetGlobalAsync("MySetting1", "43"); - - (await _settingManager.GetOrNullGlobalAsync("MySetting1")).ShouldBe("43"); - (await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("43"); - } + var settingValues = await _settingProvider.GetAllAsync(); + settingValues.ShouldContain(sv => sv.Name == "MySetting1" && sv.Value == "42"); + settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "default-store-value"); + settingValues.ShouldContain(sv => sv.Name == "SettingNotSetInStore" && sv.Value == "default-value"); + } + + [Fact] + public async Task Should_Set_Global_Value() + { + await _settingManager.SetGlobalAsync("MySetting1", "43"); + + (await _settingManager.GetOrNullGlobalAsync("MySetting1")).ShouldBe("43"); + (await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("43"); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs index 4b42572f0a..c99ff97ac1 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_User_Tests.cs @@ -8,183 +8,182 @@ using Volo.Abp.Settings; using Volo.Abp.Users; using Xunit; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingManager_User_Tests : SettingsTestBase { - public class SettingManager_User_Tests : SettingsTestBase - { - private Guid? _currentUserId; - - private readonly ISettingManager _settingManager; - private readonly ISettingProvider _settingProvider; - private readonly SettingTestData _testData; - - public SettingManager_User_Tests() - { - _settingManager = GetRequiredService(); - _settingProvider = GetRequiredService(); - _testData = GetRequiredService(); - } - - protected override void AfterAddApplication(IServiceCollection services) - { - var currentUser = Substitute.For(); - currentUser.Id.Returns(ci => _currentUserId); - services.AddSingleton(currentUser); - } - - [Fact] - public async Task Should_Get_From_Store_For_Given_User() - { - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)).ShouldBe("user1-store-value"); - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User2Id)).ShouldBe("user2-store-value"); - } - - [Fact] - public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User() - { - (await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid())).ShouldBe("default-store-value"); - } - - [Fact] - public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User_But_Specified_Fallback_As_False() - { - (await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid(), fallback: false)).ShouldBeNull(); - } - - [Fact] - public async Task Should_Get_From_Store_For_Current_User() - { - _currentUserId = _testData.User1Id; - (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("user1-store-value"); - - _currentUserId = _testData.User2Id; - (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("user2-store-value"); - } - - [Fact] - public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User() - { - _currentUserId = Guid.NewGuid(); - (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value"); - } - - [Fact] - public async Task Should_Get_From_Store_For_Current_User_With_GetOrNullForCurrentUserAsync() - { - _currentUserId = _testData.User1Id; - (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user1-store-value"); - - _currentUserId = _testData.User2Id; - (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user2-store-value"); - } - - [Fact] - public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_With_GetOrNullForCurrentUserAsync() - { - _currentUserId = Guid.NewGuid(); - (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value"); - } - - [Fact] - public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_But_Specified_Fallback_As_False() - { - _currentUserId = Guid.NewGuid(); - (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2", fallback: false)).ShouldBeNull(); - } - - [Fact] - public async Task Should_Get_All_From_Store_For_Given_User() - { - var settingValues = await _settingManager.GetAllForUserAsync(_testData.User1Id); - settingValues.ShouldContain(sv => sv.Name == "MySetting1" && sv.Value == "42"); - settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "user1-store-value"); - settingValues.ShouldContain(sv => sv.Name == "SettingNotSetInStore" && sv.Value == "default-value"); - } - - [Fact] - public async Task Should_Get_All_From_Store_For_Given_User_Without_Fallback() - { - var settingValues = await _settingManager.GetAllForUserAsync(_testData.User1Id, fallback: false); - settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "user1-store-value"); - settingValues.ShouldContain(sv => sv.Name == "MySettingWithoutInherit" && sv.Value == "user1-store-value"); - settingValues.ShouldNotContain(sv => sv.Name == "MySetting1"); - } - - [Fact] - public async Task Should_Delete_Setting_Record_When_Set_To_Null() - { - await _settingManager.SetForUserAsync(_testData.User1Id, "MySetting2", null); - - GetSettingsFromDbContext( - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString(), - "MySetting2" - ).Count.ShouldBe(0); - } - - [Fact] - public async Task Should_Change_User_Setting() - { - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) - .ShouldBe("user1-store-value"); - - await _settingManager.SetForUserAsync(_testData.User1Id, "MySetting2", "user1-new-store-value"); - - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) - .ShouldBe("user1-new-store-value"); - - GetSettingsFromDbContext( - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString(), - "MySetting2" - ).Single().Value.ShouldBe("user1-new-store-value"); - } - - [Fact] - public async Task Should_Delete_Setting_Record_When_Set_To_Fallback_Value() - { - await _settingManager.SetForUserAsync( - _testData.User1Id, - "MySetting2", - "default-store-value" - ); - - GetSettingsFromDbContext( - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString(), - "MySetting2" - ).Count.ShouldBe(0); - - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) - .ShouldBe("default-store-value"); - } - - [Fact] - public async Task Should_Not_Delete_Setting_Record_When_Set_To_Fallback_Value_If_Forced() - { - await _settingManager.SetForUserAsync( - _testData.User1Id, - "MySetting2", - "default-store-value", - forceToSet: true - ); - - GetSettingsFromDbContext( - UserSettingValueProvider.ProviderName, - _testData.User1Id.ToString(), - "MySetting2" - ).Single().Value.ShouldBe("default-store-value"); - - (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) - .ShouldBe("default-store-value"); - } - - [Fact] - public async Task Should_Get_For_Given_User_For_Non_Inherited_Setting() - { - (await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User1Id)).ShouldBe("user1-store-value"); - (await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User2Id)).ShouldBeNull(); //Does not inherit! - (await _settingManager.GetOrNullGlobalAsync("MySettingWithoutInherit")).ShouldBe("default-store-value"); - } - } -} \ No newline at end of file + private Guid? _currentUserId; + + private readonly ISettingManager _settingManager; + private readonly ISettingProvider _settingProvider; + private readonly SettingTestData _testData; + + public SettingManager_User_Tests() + { + _settingManager = GetRequiredService(); + _settingProvider = GetRequiredService(); + _testData = GetRequiredService(); + } + + protected override void AfterAddApplication(IServiceCollection services) + { + var currentUser = Substitute.For(); + currentUser.Id.Returns(ci => _currentUserId); + services.AddSingleton(currentUser); + } + + [Fact] + public async Task Should_Get_From_Store_For_Given_User() + { + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)).ShouldBe("user1-store-value"); + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User2Id)).ShouldBe("user2-store-value"); + } + + [Fact] + public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User() + { + (await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid())).ShouldBe("default-store-value"); + } + + [Fact] + public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User_But_Specified_Fallback_As_False() + { + (await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid(), fallback: false)).ShouldBeNull(); + } + + [Fact] + public async Task Should_Get_From_Store_For_Current_User() + { + _currentUserId = _testData.User1Id; + (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("user1-store-value"); + + _currentUserId = _testData.User2Id; + (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("user2-store-value"); + } + + [Fact] + public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User() + { + _currentUserId = Guid.NewGuid(); + (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value"); + } + + [Fact] + public async Task Should_Get_From_Store_For_Current_User_With_GetOrNullForCurrentUserAsync() + { + _currentUserId = _testData.User1Id; + (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user1-store-value"); + + _currentUserId = _testData.User2Id; + (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user2-store-value"); + } + + [Fact] + public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_With_GetOrNullForCurrentUserAsync() + { + _currentUserId = Guid.NewGuid(); + (await _settingProvider.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value"); + } + + [Fact] + public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_But_Specified_Fallback_As_False() + { + _currentUserId = Guid.NewGuid(); + (await _settingManager.GetOrNullForCurrentUserAsync("MySetting2", fallback: false)).ShouldBeNull(); + } + + [Fact] + public async Task Should_Get_All_From_Store_For_Given_User() + { + var settingValues = await _settingManager.GetAllForUserAsync(_testData.User1Id); + settingValues.ShouldContain(sv => sv.Name == "MySetting1" && sv.Value == "42"); + settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "user1-store-value"); + settingValues.ShouldContain(sv => sv.Name == "SettingNotSetInStore" && sv.Value == "default-value"); + } + + [Fact] + public async Task Should_Get_All_From_Store_For_Given_User_Without_Fallback() + { + var settingValues = await _settingManager.GetAllForUserAsync(_testData.User1Id, fallback: false); + settingValues.ShouldContain(sv => sv.Name == "MySetting2" && sv.Value == "user1-store-value"); + settingValues.ShouldContain(sv => sv.Name == "MySettingWithoutInherit" && sv.Value == "user1-store-value"); + settingValues.ShouldNotContain(sv => sv.Name == "MySetting1"); + } + + [Fact] + public async Task Should_Delete_Setting_Record_When_Set_To_Null() + { + await _settingManager.SetForUserAsync(_testData.User1Id, "MySetting2", null); + + GetSettingsFromDbContext( + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString(), + "MySetting2" + ).Count.ShouldBe(0); + } + + [Fact] + public async Task Should_Change_User_Setting() + { + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) + .ShouldBe("user1-store-value"); + + await _settingManager.SetForUserAsync(_testData.User1Id, "MySetting2", "user1-new-store-value"); + + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) + .ShouldBe("user1-new-store-value"); + + GetSettingsFromDbContext( + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString(), + "MySetting2" + ).Single().Value.ShouldBe("user1-new-store-value"); + } + + [Fact] + public async Task Should_Delete_Setting_Record_When_Set_To_Fallback_Value() + { + await _settingManager.SetForUserAsync( + _testData.User1Id, + "MySetting2", + "default-store-value" + ); + + GetSettingsFromDbContext( + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString(), + "MySetting2" + ).Count.ShouldBe(0); + + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) + .ShouldBe("default-store-value"); + } + + [Fact] + public async Task Should_Not_Delete_Setting_Record_When_Set_To_Fallback_Value_If_Forced() + { + await _settingManager.SetForUserAsync( + _testData.User1Id, + "MySetting2", + "default-store-value", + forceToSet: true + ); + + GetSettingsFromDbContext( + UserSettingValueProvider.ProviderName, + _testData.User1Id.ToString(), + "MySetting2" + ).Single().Value.ShouldBe("default-store-value"); + + (await _settingManager.GetOrNullForUserAsync("MySetting2", _testData.User1Id)) + .ShouldBe("default-store-value"); + } + + [Fact] + public async Task Should_Get_For_Given_User_For_Non_Inherited_Setting() + { + (await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User1Id)).ShouldBe("user1-store-value"); + (await _settingManager.GetOrNullForUserAsync("MySettingWithoutInherit", _testData.User2Id)).ShouldBeNull(); //Does not inherit! + (await _settingManager.GetOrNullGlobalAsync("MySettingWithoutInherit")).ShouldBe("default-store-value"); + } +} diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingsTestBase.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingsTestBase.cs index 2e0721bbbc..6f0c659e87 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingsTestBase.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingsTestBase.cs @@ -3,36 +3,35 @@ using System.Collections.Generic; using System.Linq; using Volo.Abp.SettingManagement.EntityFrameworkCore; -namespace Volo.Abp.SettingManagement +namespace Volo.Abp.SettingManagement; + +public class SettingsTestBase : SettingManagementTestBase { - public class SettingsTestBase : SettingManagementTestBase + protected virtual void UsingDbContext(Action action) { - protected virtual void UsingDbContext(Action action) + using (var dbContext = GetRequiredService()) { - using (var dbContext = GetRequiredService()) - { - action.Invoke(dbContext); - } + action.Invoke(dbContext); } + } - protected virtual T UsingDbContext(Func action) + protected virtual T UsingDbContext(Func action) + { + using (var dbContext = GetRequiredService()) { - using (var dbContext = GetRequiredService()) - { - return action.Invoke(dbContext); - } + return action.Invoke(dbContext); } + } - protected List GetSettingsFromDbContext(string entityType, string entityId, string name) - { - return UsingDbContext(context => - context.Settings.Where( - s => - s.ProviderName == entityType && - s.ProviderKey == entityId && - s.Name == name - ).ToList() - ); - } + protected List GetSettingsFromDbContext(string entityType, string entityId, string name) + { + return UsingDbContext(context => + context.Settings.Where( + s => + s.ProviderName == entityType && + s.ProviderKey == entityId && + s.Name == name + ).ToList() + ); } }