diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobService.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobService.cs index 58924871d1..d62c57f3d2 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobService.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobService.cs @@ -3,21 +3,20 @@ using System.Threading.Tasks; using Volo.Abp.BlobStoring; using Volo.Abp.DependencyInjection; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; + +public class BlobService : IBlobService, ITransientDependency { - public class BlobService : IBlobService, ITransientDependency - { - private readonly IBlobContainer _container; + private readonly IBlobContainer _container; - public BlobService(IBlobContainer container) - { - _container = container; - } + public BlobService(IBlobContainer container) + { + _container = container; + } - public async Task SaveFile(string fileName = "File Name", string fileContent = "File Content") - { - await _container.SaveAsync(fileName, fileContent.GetBytes(), true); - Console.WriteLine($"File: {fileName} is successfully saved"); - } + public async Task SaveFile(string fileName = "File Name", string fileContent = "File Content") + { + await _container.SaveAsync(fileName, fileContent.GetBytes(), true); + Console.WriteLine($"File: {fileName} is successfully saved"); } } diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppHostedService.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppHostedService.cs index 06336ad75a..bd0af06779 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppHostedService.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppHostedService.cs @@ -5,28 +5,27 @@ using Microsoft.Extensions.Hosting; using Serilog; using Volo.Abp; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; + +public class ConsoleAppConsoleAppHostedService : IHostedService { - public class ConsoleAppConsoleAppHostedService : IHostedService + public async Task StartAsync(CancellationToken cancellationToken) { - public async Task StartAsync(CancellationToken cancellationToken) + using (var application = AbpApplicationFactory.Create(options => + { + options.UseAutofac(); + options.Services.AddLogging(c => c.AddSerilog()); + })) { - using (var application = AbpApplicationFactory.Create(options => - { - options.UseAutofac(); - options.Services.AddLogging(c => c.AddSerilog()); - })) - { - application.Initialize(); + application.Initialize(); - var blobService = application.ServiceProvider.GetService(); + var blobService = application.ServiceProvider.GetService(); - await blobService.SaveFile("Test File 2", "Test Content 2"); + await blobService.SaveFile("Test File 2", "Test Content 2"); - application.Shutdown(); - } + application.Shutdown(); } - - public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; } + + public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; } diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppModule.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppModule.cs index 21f2ed53b8..ead44ef6d8 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppModule.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ConsoleAppConsoleAppModule.cs @@ -10,47 +10,45 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.SqlServer; using Volo.Abp.Modularity; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp -{ +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpEntityFrameworkCoreSqlServerModule), - typeof(BlobStoringDatabaseEntityFrameworkCoreModule) - )] - public class ConsoleAppConsoleAppModule : AbpModule +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpEntityFrameworkCoreSqlServerModule), + typeof(BlobStoringDatabaseEntityFrameworkCoreModule) +)] +public class ConsoleAppConsoleAppModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - ConfigureEntityFramework(context); + ConfigureEntityFramework(context); - context.Services.AddSingleton(); + context.Services.AddSingleton(); - Configure(options => + Configure(options => + { + options.Containers.ConfigureDefault(container => { - options.Containers.ConfigureDefault(container => - { - container.ProviderType = typeof(DatabaseBlobProvider); - }); + container.ProviderType = typeof(DatabaseBlobProvider); }); - } + }); + } - private void ConfigureEntityFramework(ServiceConfigurationContext context) + private void ConfigureEntityFramework(ServiceConfigurationContext context) + { + Configure(options => { - Configure(options => - { - options.ConnectionStrings.Default = "Server=localhost;Database=BlobStoring_Host;Trusted_Connection=True"; - }); - - context.Services.AddAbpDbContext(options => - { - options.AddDefaultRepositories(true); - }); + options.ConnectionStrings.Default = "Server=localhost;Database=BlobStoring_Host;Trusted_Connection=True"; + }); - Configure(x => - { - x.UseSqlServer(); - }); - } + context.Services.AddAbpDbContext(options => + { + options.AddDefaultRepositories(true); + }); + + Configure(x => + { + x.UseSqlServer(); + }); } } diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContext.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContext.cs index f7ffc72d43..2eb884330d 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContext.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContext.cs @@ -2,19 +2,18 @@ using Volo.Abp.BlobStoring.Database.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore; + +public class BlobStoringHostDbContext : AbpDbContext { - public class BlobStoringHostDbContext : AbpDbContext + public BlobStoringHostDbContext(DbContextOptions options) : base(options) { - public BlobStoringHostDbContext(DbContextOptions options) : base(options) - { - } + } - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - base.OnModelCreating(modelBuilder); + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); - modelBuilder.ConfigureBlobStoring(); - } + modelBuilder.ConfigureBlobStoring(); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContextFactory.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContextFactory.cs index e5c482f49f..161bf53f4b 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContextFactory.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbContextFactory.cs @@ -3,27 +3,26 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore; + +public class BlobStoringHostDbContextFactory : IDesignTimeDbContextFactory { - public class BlobStoringHostDbContextFactory : IDesignTimeDbContextFactory + public BlobStoringHostDbContext CreateDbContext(string[] args) { - public BlobStoringHostDbContext 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 BlobStoringHostDbContext(builder.Options); - } + return new BlobStoringHostDbContext(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(); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbSchemaMigrator.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbSchemaMigrator.cs index 6494eb43c7..ed25a4a64c 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbSchemaMigrator.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/BlobStoringHostDbSchemaMigrator.cs @@ -4,23 +4,22 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore; + +public class BlobStoringHostDbSchemaMigrator : IBlobStoringHostDbSchemaMigrator, ITransientDependency { - public class BlobStoringHostDbSchemaMigrator : IBlobStoringHostDbSchemaMigrator, ITransientDependency - { - private readonly IServiceProvider _serviceProvider; + private readonly IServiceProvider _serviceProvider; - public BlobStoringHostDbSchemaMigrator(IServiceProvider serviceProvider) - { - _serviceProvider = serviceProvider; - } + public BlobStoringHostDbSchemaMigrator(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } - public async Task MigrateAsync() - { - await _serviceProvider - .GetRequiredService() - .Database - .MigrateAsync(); - } + public async Task MigrateAsync() + { + await _serviceProvider + .GetRequiredService() + .Database + .MigrateAsync(); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/IBlobStoringHostDbSchemaMigrator.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/IBlobStoringHostDbSchemaMigrator.cs index 27e14557b6..380a5314c6 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/IBlobStoringHostDbSchemaMigrator.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/EfCore/IBlobStoringHostDbSchemaMigrator.cs @@ -1,9 +1,8 @@ using System.Threading.Tasks; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.EfCore; + +public interface IBlobStoringHostDbSchemaMigrator { - public interface IBlobStoringHostDbSchemaMigrator - { - Task MigrateAsync(); - } -} \ No newline at end of file + Task MigrateAsync(); +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/IBlobService.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/IBlobService.cs index 32daf0b0fc..3c11e8e1fc 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/IBlobService.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/IBlobService.cs @@ -1,9 +1,8 @@ using System.Threading.Tasks; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; + +public interface IBlobService { - public interface IBlobService - { - Task SaveFile(string fileName = "File Name", string fileContent = "File Content"); - } -} \ No newline at end of file + Task SaveFile(string fileName = "File Name", string fileContent = "File Content"); +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Migrations/20201013055337_Initial.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Migrations/20201013055337_Initial.cs index bc8d412cb5..4fc178c951 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Migrations/20201013055337_Initial.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Migrations/20201013055337_Initial.cs @@ -1,73 +1,70 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.Migrations +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp.Migrations; + +public partial class Initial : Migration { - public partial class Initial : Migration + protected override void Up(MigrationBuilder migrationBuilder) { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AbpBlobContainers", - columns: table => new - { - Id = table.Column(nullable: false), - ExtraProperties = table.Column(nullable: true), - ConcurrencyStamp = table.Column(maxLength: 40, nullable: true), - TenantId = table.Column(nullable: true), - Name = table.Column(maxLength: 128, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpBlobContainers", x => x.Id); - }); + migrationBuilder.CreateTable( + name: "AbpBlobContainers", + columns: table => new { + Id = table.Column(nullable: false), + ExtraProperties = table.Column(nullable: true), + ConcurrencyStamp = table.Column(maxLength: 40, nullable: true), + TenantId = table.Column(nullable: true), + Name = table.Column(maxLength: 128, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpBlobContainers", x => x.Id); + }); - migrationBuilder.CreateTable( - name: "AbpBlobs", - columns: table => new - { - Id = table.Column(nullable: false), - ExtraProperties = table.Column(nullable: true), - ConcurrencyStamp = table.Column(maxLength: 40, nullable: true), - ContainerId = table.Column(nullable: false), - TenantId = table.Column(nullable: true), - Name = table.Column(maxLength: 256, nullable: false), - Content = table.Column(maxLength: 2147483647, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpBlobs", x => x.Id); - table.ForeignKey( - name: "FK_AbpBlobs_AbpBlobContainers_ContainerId", - column: x => x.ContainerId, - principalTable: "AbpBlobContainers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); + migrationBuilder.CreateTable( + name: "AbpBlobs", + columns: table => new { + Id = table.Column(nullable: false), + ExtraProperties = table.Column(nullable: true), + ConcurrencyStamp = table.Column(maxLength: 40, nullable: true), + ContainerId = table.Column(nullable: false), + TenantId = table.Column(nullable: true), + Name = table.Column(maxLength: 256, nullable: false), + Content = table.Column(maxLength: 2147483647, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpBlobs", x => x.Id); + table.ForeignKey( + name: "FK_AbpBlobs_AbpBlobContainers_ContainerId", + column: x => x.ContainerId, + principalTable: "AbpBlobContainers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); - migrationBuilder.CreateIndex( - name: "IX_AbpBlobContainers_TenantId_Name", - table: "AbpBlobContainers", - columns: new[] { "TenantId", "Name" }); + migrationBuilder.CreateIndex( + name: "IX_AbpBlobContainers_TenantId_Name", + table: "AbpBlobContainers", + columns: new[] { "TenantId", "Name" }); - migrationBuilder.CreateIndex( - name: "IX_AbpBlobs_ContainerId", - table: "AbpBlobs", - column: "ContainerId"); + migrationBuilder.CreateIndex( + name: "IX_AbpBlobs_ContainerId", + table: "AbpBlobs", + column: "ContainerId"); - migrationBuilder.CreateIndex( - name: "IX_AbpBlobs_TenantId_ContainerId_Name", - table: "AbpBlobs", - columns: new[] { "TenantId", "ContainerId", "Name" }); - } + migrationBuilder.CreateIndex( + name: "IX_AbpBlobs_TenantId_ContainerId_Name", + table: "AbpBlobs", + columns: new[] { "TenantId", "ContainerId", "Name" }); + } - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AbpBlobs"); + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AbpBlobs"); - migrationBuilder.DropTable( - name: "AbpBlobContainers"); - } + migrationBuilder.DropTable( + name: "AbpBlobContainers"); } } diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ProfilePictureContainer.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ProfilePictureContainer.cs index dd7a683ba5..b2c2dff769 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ProfilePictureContainer.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/ProfilePictureContainer.cs @@ -1,7 +1,6 @@ -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; + +public class ProfilePictureContainer { - public class ProfilePictureContainer - { - - } -} \ No newline at end of file + +} diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Program.cs b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Program.cs index 3ae0be0e44..50e067edd7 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Program.cs +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/Program.cs @@ -5,47 +5,46 @@ using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; -namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp +namespace BlobStoring.Database.Host.ConsoleApp.ConsoleApp; + +public class Program { - public class Program + public static async Task Main(string[] args) { - public static async Task Main(string[] args) - { - Log.Logger = new LoggerConfiguration() + Log.Logger = new LoggerConfiguration() #if DEBUG .MinimumLevel.Debug() #else .MinimumLevel.Information() #endif .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt")) - .WriteTo.Console() - .CreateLogger(); - - try - { - Log.Information("Starting console host."); - await CreateHostBuilder(args).RunConsoleAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Console() + .CreateLogger(); + try + { + Log.Information("Starting console host."); + await CreateHostBuilder(args).RunConsoleAsync(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); } - internal static IHostBuilder CreateHostBuilder(string[] args) => - Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) - .ConfigureServices((hostContext, services) => - { - services.AddHostedService(); - }); } + + internal static IHostBuilder CreateHostBuilder(string[] args) => + Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) + .ConfigureServices((hostContext, services) => + { + services.AddHostedService(); + }); } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainSharedModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainSharedModule.cs index 836c6f5a15..4a1efab044 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainSharedModule.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainSharedModule.cs @@ -6,32 +6,31 @@ using Volo.Abp.Validation; using Volo.Abp.Validation.Localization; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[DependsOn( + typeof(AbpValidationModule) +)] +public class BlobStoringDatabaseDomainSharedModule : AbpModule { - [DependsOn( - typeof(AbpValidationModule) - )] - public class BlobStoringDatabaseDomainSharedModule : 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") - .AddBaseTypes(typeof(AbpValidationResource)) - .AddVirtualJson("/Volo/Abp/BlobStoring/Database/Localization"); - }); + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes(typeof(AbpValidationResource)) + .AddVirtualJson("/Volo/Abp/BlobStoring/Database/Localization"); + }); - Configure(options => - { - options.MapCodeNamespace("BlobStoringDatabase", typeof(BlobStoringDatabaseResource)); - }); - } + Configure(options => + { + options.MapCodeNamespace("BlobStoringDatabase", typeof(BlobStoringDatabaseResource)); + }); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseErrorCodes.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseErrorCodes.cs index fe066e74e5..46794afffb 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseErrorCodes.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseErrorCodes.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public static class BlobStoringDatabaseErrorCodes { - public static class BlobStoringDatabaseErrorCodes - { - //Add your business exception error codes here... - } + //Add your business exception error codes here... } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseBlobConsts.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseBlobConsts.cs index c2cd33f098..b13f07c8f2 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseBlobConsts.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseBlobConsts.cs @@ -1,15 +1,14 @@ -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public static class DatabaseBlobConsts { - public static class DatabaseBlobConsts - { - /// - /// Default value: 256. - /// - public static int MaxNameLength { get; set; } = 256; + /// + /// Default value: 256. + /// + public static int MaxNameLength { get; set; } = 256; - /// - /// Default value: (2GB). - /// - public static int MaxContentLength { get; set; } = int.MaxValue; - } -} \ No newline at end of file + /// + /// Default value: (2GB). + /// + public static int MaxContentLength { get; set; } = int.MaxValue; +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseContainerConsts.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseContainerConsts.cs index 22d127a1f1..2cd72b0253 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseContainerConsts.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/DatabaseContainerConsts.cs @@ -1,10 +1,9 @@ -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public static class DatabaseContainerConsts { - public static class DatabaseContainerConsts - { - /// - /// Default value: 128. - /// - public static int MaxNameLength { get; set; } = 128; - } -} \ No newline at end of file + /// + /// Default value: 128. + /// + public static int MaxNameLength { get; set; } = 128; +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/BlobStoringDatabaseResource.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/BlobStoringDatabaseResource.cs index 6ee2f79810..7d2adf069a 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/BlobStoringDatabaseResource.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo/Abp/BlobStoring/Database/Localization/BlobStoringDatabaseResource.cs @@ -1,10 +1,9 @@ using Volo.Abp.Localization; -namespace Volo.Abp.BlobStoring.Database.Localization +namespace Volo.Abp.BlobStoring.Database.Localization; + +[LocalizationResourceName("BlobStoringDatabase")] +public class BlobStoringDatabaseResource { - [LocalizationResourceName("BlobStoringDatabase")] - public class BlobStoringDatabaseResource - { - - } + } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDbProperties.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDbProperties.cs index b673ad853f..a9689eb9fd 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDbProperties.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDbProperties.cs @@ -1,13 +1,12 @@ using Volo.Abp.Data; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public static class BlobStoringDatabaseDbProperties { - public static class BlobStoringDatabaseDbProperties - { - 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 = "AbpBlobStoring"; - } + public const string ConnectionStringName = "AbpBlobStoring"; } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainModule.cs index 316659af67..35bb366eb1 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainModule.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseDomainModule.cs @@ -1,27 +1,26 @@ using Volo.Abp.Domain; using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[DependsOn( + typeof(AbpDddDomainModule), + typeof(AbpBlobStoringModule), + typeof(BlobStoringDatabaseDomainSharedModule) + )] +public class BlobStoringDatabaseDomainModule : AbpModule { - [DependsOn( - typeof(AbpDddDomainModule), - typeof(AbpBlobStoringModule), - typeof(BlobStoringDatabaseDomainSharedModule) - )] - public class BlobStoringDatabaseDomainModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { - Configure(options => + options.Containers.ConfigureDefault(container => { - options.Containers.ConfigureDefault(container => + if (container.ProviderType == null) { - if (container.ProviderType == null) - { - container.UseDatabase(); - } - }); + container.UseDatabase(); + } }); - } + }); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlob.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlob.cs index 20219391fa..8b51868e27 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlob.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlob.cs @@ -4,43 +4,42 @@ using Volo.Abp.Auditing; using Volo.Abp.Domain.Entities; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.BlobStoring.Database -{ - public class DatabaseBlob : AggregateRoot, IMultiTenant - { - public virtual Guid ContainerId { get; protected set; } +namespace Volo.Abp.BlobStoring.Database; - public virtual Guid? TenantId { get; protected set; } +public class DatabaseBlob : AggregateRoot, IMultiTenant +{ + public virtual Guid ContainerId { get; protected set; } - public virtual string Name { get; protected set; } + public virtual Guid? TenantId { get; protected set; } - [DisableAuditing] - public virtual byte[] Content { get; protected set; } + public virtual string Name { get; protected set; } - public DatabaseBlob(Guid id, Guid containerId, [NotNull] string name, [NotNull] byte[] content, Guid? tenantId = null) - : base(id) - { - Name = Check.NotNullOrWhiteSpace(name, nameof(name), DatabaseBlobConsts.MaxNameLength); - ContainerId = containerId; - Content = CheckContentLength(content); - TenantId = tenantId; - } + [DisableAuditing] + public virtual byte[] Content { get; protected set; } - public virtual void SetContent(byte[] content) - { - Content = CheckContentLength(content); - } + public DatabaseBlob(Guid id, Guid containerId, [NotNull] string name, [NotNull] byte[] content, Guid? tenantId = null) + : base(id) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name), DatabaseBlobConsts.MaxNameLength); + ContainerId = containerId; + Content = CheckContentLength(content); + TenantId = tenantId; + } - protected virtual byte[] CheckContentLength(byte[] content) - { - Check.NotNull(content, nameof(content)); + public virtual void SetContent(byte[] content) + { + Content = CheckContentLength(content); + } - if (content.Length >= DatabaseBlobConsts.MaxContentLength) - { - throw new AbpException($"Blob content size cannot be more than {DatabaseBlobConsts.MaxContentLength} Bytes."); - } + protected virtual byte[] CheckContentLength(byte[] content) + { + Check.NotNull(content, nameof(content)); - return content; + if (content.Length >= DatabaseBlobConsts.MaxContentLength) + { + throw new AbpException($"Blob content size cannot be more than {DatabaseBlobConsts.MaxContentLength} Bytes."); } + + return content; } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs index df912b84e5..0ae8a3ad4b 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainer.cs @@ -3,19 +3,18 @@ using JetBrains.Annotations; using Volo.Abp.Domain.Entities; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public class DatabaseBlobContainer : AggregateRoot, IMultiTenant { - public class DatabaseBlobContainer : AggregateRoot, IMultiTenant - { - public virtual Guid? TenantId { get; protected set; } + public virtual Guid? TenantId { get; protected set; } - public virtual string Name { get; protected set; } + public virtual string Name { get; protected set; } - public DatabaseBlobContainer(Guid id, [NotNull] string name, Guid? tenantId = null) - : base(id) - { - Name = Check.NotNullOrWhiteSpace(name, nameof(name), DatabaseContainerConsts.MaxNameLength); - TenantId = tenantId; - } + public DatabaseBlobContainer(Guid id, [NotNull] string name, Guid? tenantId = null) + : base(id) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name), DatabaseContainerConsts.MaxNameLength); + TenantId = tenantId; } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainerConfigurationExtensions.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainerConfigurationExtensions.cs index 8ac2e057f3..d5b580919b 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainerConfigurationExtensions.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobContainerConfigurationExtensions.cs @@ -1,12 +1,11 @@ -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public static class DatabaseBlobContainerConfigurationExtensions { - public static class DatabaseBlobContainerConfigurationExtensions + public static BlobContainerConfiguration UseDatabase( + this BlobContainerConfiguration containerConfiguration) { - public static BlobContainerConfiguration UseDatabase( - this BlobContainerConfiguration containerConfiguration) - { - containerConfiguration.ProviderType = typeof(DatabaseBlobProvider); - return containerConfiguration; - } + containerConfiguration.ProviderType = typeof(DatabaseBlobProvider); + return containerConfiguration; } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs index 6d9b3dfc5b..796a86b4d3 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs @@ -5,137 +5,136 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.Guids; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public class DatabaseBlobProvider : BlobProviderBase, ITransientDependency { - public class DatabaseBlobProvider : BlobProviderBase, ITransientDependency + protected IDatabaseBlobRepository DatabaseBlobRepository { get; } + protected IDatabaseBlobContainerRepository DatabaseBlobContainerRepository { get; } + protected IGuidGenerator GuidGenerator { get; } + protected ICurrentTenant CurrentTenant { get; } + + public DatabaseBlobProvider( + IDatabaseBlobRepository databaseBlobRepository, + IDatabaseBlobContainerRepository databaseBlobContainerRepository, + IGuidGenerator guidGenerator, + ICurrentTenant currentTenant) { - protected IDatabaseBlobRepository DatabaseBlobRepository { get; } - protected IDatabaseBlobContainerRepository DatabaseBlobContainerRepository { get; } - protected IGuidGenerator GuidGenerator { get; } - protected ICurrentTenant CurrentTenant { get; } - - public DatabaseBlobProvider( - IDatabaseBlobRepository databaseBlobRepository, - IDatabaseBlobContainerRepository databaseBlobContainerRepository, - IGuidGenerator guidGenerator, - ICurrentTenant currentTenant) - { - DatabaseBlobRepository = databaseBlobRepository; - DatabaseBlobContainerRepository = databaseBlobContainerRepository; - GuidGenerator = guidGenerator; - CurrentTenant = currentTenant; - } + DatabaseBlobRepository = databaseBlobRepository; + DatabaseBlobContainerRepository = databaseBlobContainerRepository; + GuidGenerator = guidGenerator; + CurrentTenant = currentTenant; + } - public async override Task SaveAsync(BlobProviderSaveArgs args) - { - var container = await GetOrCreateContainerAsync(args.ContainerName, args.CancellationToken); + public async override Task SaveAsync(BlobProviderSaveArgs args) + { + var container = await GetOrCreateContainerAsync(args.ContainerName, args.CancellationToken); - var blob = await DatabaseBlobRepository.FindAsync( - container.Id, - args.BlobName, - args.CancellationToken - ); + var blob = await DatabaseBlobRepository.FindAsync( + container.Id, + args.BlobName, + args.CancellationToken + ); - var content = await args.BlobStream.GetAllBytesAsync(args.CancellationToken); + var content = await args.BlobStream.GetAllBytesAsync(args.CancellationToken); - if (blob != null) + if (blob != null) + { + if (!args.OverrideExisting) { - if (!args.OverrideExisting) - { - throw new BlobAlreadyExistsException( - $"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten."); - } + throw new BlobAlreadyExistsException( + $"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten."); + } - blob.SetContent(content); + blob.SetContent(content); - await DatabaseBlobRepository.UpdateAsync(blob, autoSave: true); - } - else - { - blob = new DatabaseBlob(GuidGenerator.Create(), container.Id, args.BlobName, content, CurrentTenant.Id); - await DatabaseBlobRepository.InsertAsync(blob, autoSave: true); - } + await DatabaseBlobRepository.UpdateAsync(blob, autoSave: true); } - - public async override Task DeleteAsync(BlobProviderDeleteArgs args) + else { - var container = await DatabaseBlobContainerRepository.FindAsync( - args.ContainerName, - args.CancellationToken - ); - - if (container == null) - { - return false; - } - - return await DatabaseBlobRepository.DeleteAsync( - container.Id, - args.BlobName, - autoSave: true, - cancellationToken: args.CancellationToken - ); + blob = new DatabaseBlob(GuidGenerator.Create(), container.Id, args.BlobName, content, CurrentTenant.Id); + await DatabaseBlobRepository.InsertAsync(blob, autoSave: true); } + } - public async override Task ExistsAsync(BlobProviderExistsArgs args) + public async override Task DeleteAsync(BlobProviderDeleteArgs args) + { + var container = await DatabaseBlobContainerRepository.FindAsync( + args.ContainerName, + args.CancellationToken + ); + + if (container == null) { - var container = await DatabaseBlobContainerRepository.FindAsync( - args.ContainerName, - args.CancellationToken - ); + return false; + } - if (container == null) - { - return false; - } + return await DatabaseBlobRepository.DeleteAsync( + container.Id, + args.BlobName, + autoSave: true, + cancellationToken: args.CancellationToken + ); + } - return await DatabaseBlobRepository.ExistsAsync( - container.Id, - args.BlobName, - args.CancellationToken - ); - } + public async override Task ExistsAsync(BlobProviderExistsArgs args) + { + var container = await DatabaseBlobContainerRepository.FindAsync( + args.ContainerName, + args.CancellationToken + ); - public async override Task GetOrNullAsync(BlobProviderGetArgs args) + if (container == null) { - var container = await DatabaseBlobContainerRepository.FindAsync( - args.ContainerName, - args.CancellationToken - ); - - if (container == null) - { - return null; - } + return false; + } - var blob = await DatabaseBlobRepository.FindAsync( - container.Id, - args.BlobName, - args.CancellationToken - ); + return await DatabaseBlobRepository.ExistsAsync( + container.Id, + args.BlobName, + args.CancellationToken + ); + } - if (blob == null) - { - return null; - } + public async override Task GetOrNullAsync(BlobProviderGetArgs args) + { + var container = await DatabaseBlobContainerRepository.FindAsync( + args.ContainerName, + args.CancellationToken + ); - return new MemoryStream(blob.Content); + if (container == null) + { + return null; } - protected virtual async Task GetOrCreateContainerAsync( - string name, - CancellationToken cancellationToken = default) + var blob = await DatabaseBlobRepository.FindAsync( + container.Id, + args.BlobName, + args.CancellationToken + ); + + if (blob == null) { - var container = await DatabaseBlobContainerRepository.FindAsync(name, cancellationToken); - if (container != null) - { - return container; - } + return null; + } - container = new DatabaseBlobContainer(GuidGenerator.Create(), name, CurrentTenant.Id); - await DatabaseBlobContainerRepository.InsertAsync(container, cancellationToken: cancellationToken); + return new MemoryStream(blob.Content); + } + protected virtual async Task GetOrCreateContainerAsync( + string name, + CancellationToken cancellationToken = default) + { + var container = await DatabaseBlobContainerRepository.FindAsync(name, cancellationToken); + if (container != null) + { return container; } + + container = new DatabaseBlobContainer(GuidGenerator.Create(), name, CurrentTenant.Id); + await DatabaseBlobContainerRepository.InsertAsync(container, cancellationToken: cancellationToken); + + return container; } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobContainerRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobContainerRepository.cs index 713d05ca11..4b9d717fd1 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobContainerRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobContainerRepository.cs @@ -4,10 +4,9 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Domain.Repositories; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public interface IDatabaseBlobContainerRepository : IBasicRepository { - public interface IDatabaseBlobContainerRepository : IBasicRepository - { - Task FindAsync([NotNull] string name, CancellationToken cancellationToken = default); - } -} \ No newline at end of file + Task FindAsync([NotNull] string name, CancellationToken cancellationToken = default); +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobRepository.cs index e3b96805c2..1fc728775f 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/IDatabaseBlobRepository.cs @@ -4,14 +4,13 @@ using System.Threading.Tasks; using JetBrains.Annotations; using Volo.Abp.Domain.Repositories; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public interface IDatabaseBlobRepository : IBasicRepository { - public interface IDatabaseBlobRepository : IBasicRepository - { - Task FindAsync(Guid containerId, [NotNull] string name, CancellationToken cancellationToken = default); + Task FindAsync(Guid containerId, [NotNull] string name, CancellationToken cancellationToken = default); - Task ExistsAsync(Guid containerId, [NotNull] string name, CancellationToken cancellationToken = default); + Task ExistsAsync(Guid containerId, [NotNull] string name, CancellationToken cancellationToken = default); - Task DeleteAsync(Guid containerId, [NotNull] string name, bool autoSave = false, CancellationToken cancellationToken = default); - } -} \ No newline at end of file + Task DeleteAsync(Guid containerId, [NotNull] string name, bool autoSave = false, CancellationToken cancellationToken = default); +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreModule.cs index 26e8a5f024..b257b19068 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreModule.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreModule.cs @@ -2,22 +2,21 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +[DependsOn( + typeof(BlobStoringDatabaseDomainModule), + typeof(AbpEntityFrameworkCoreModule) +)] +public class BlobStoringDatabaseEntityFrameworkCoreModule : AbpModule { - [DependsOn( - typeof(BlobStoringDatabaseDomainModule), - typeof(AbpEntityFrameworkCoreModule) - )] - public class BlobStoringDatabaseEntityFrameworkCoreModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + context.Services.AddAbpDbContext(options => { - context.Services.AddAbpDbContext(options => - { - options.AddRepository(); + options.AddRepository(); - options.AddRepository(); - }); - } + options.AddRepository(); + }); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContext.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContext.cs index 00780c628b..b20f5190c4 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContext.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContext.cs @@ -2,26 +2,25 @@ using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +[ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] +public class BlobStoringDbContext : AbpDbContext, IBlobStoringDbContext { - [ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] - public class BlobStoringDbContext : AbpDbContext, IBlobStoringDbContext - { - public DbSet BlobContainers { get; set; } + public DbSet BlobContainers { get; set; } - public DbSet Blobs { get; set; } + public DbSet Blobs { get; set; } - public BlobStoringDbContext(DbContextOptions options) - : base(options) - { + public BlobStoringDbContext(DbContextOptions options) + : base(options) + { - } + } - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); + protected override void OnModelCreating(ModelBuilder builder) + { + base.OnModelCreating(builder); - builder.ConfigureBlobStoring(); - } + builder.ConfigureBlobStoring(); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContextModelCreatingExtensions.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContextModelCreatingExtensions.cs index fe0e289fb1..e4fad62e37 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContextModelCreatingExtensions.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/BlobStoringDbContextModelCreatingExtensions.cs @@ -1,48 +1,47 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Modeling; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public static class BlobStoringDbContextModelCreatingExtensions { - public static class BlobStoringDbContextModelCreatingExtensions + public static void ConfigureBlobStoring( + this ModelBuilder builder) { - public static void ConfigureBlobStoring( - this ModelBuilder builder) - { - Check.NotNull(builder, nameof(builder)); + Check.NotNull(builder, nameof(builder)); - builder.Entity(b => - { - b.ToTable(BlobStoringDatabaseDbProperties.DbTablePrefix + "BlobContainers", BlobStoringDatabaseDbProperties.DbSchema); + builder.Entity(b => + { + b.ToTable(BlobStoringDatabaseDbProperties.DbTablePrefix + "BlobContainers", BlobStoringDatabaseDbProperties.DbSchema); - b.ConfigureByConvention(); + b.ConfigureByConvention(); - b.Property(p => p.Name).IsRequired().HasMaxLength(DatabaseContainerConsts.MaxNameLength); + b.Property(p => p.Name).IsRequired().HasMaxLength(DatabaseContainerConsts.MaxNameLength); - b.HasMany().WithOne().HasForeignKey(p => p.ContainerId); + b.HasMany().WithOne().HasForeignKey(p => p.ContainerId); - b.HasIndex(x => new {x.TenantId, x.Name}); + b.HasIndex(x => new { x.TenantId, x.Name }); - b.ApplyObjectExtensionMappings(); - }); + b.ApplyObjectExtensionMappings(); + }); - builder.Entity(b => - { - b.ToTable(BlobStoringDatabaseDbProperties.DbTablePrefix + "Blobs", BlobStoringDatabaseDbProperties.DbSchema); + builder.Entity(b => + { + b.ToTable(BlobStoringDatabaseDbProperties.DbTablePrefix + "Blobs", BlobStoringDatabaseDbProperties.DbSchema); - b.ConfigureByConvention(); + b.ConfigureByConvention(); - b.Property(p => p.ContainerId).IsRequired(); //TODO: Foreign key! + b.Property(p => p.ContainerId).IsRequired(); //TODO: Foreign key! b.Property(p => p.Name).IsRequired().HasMaxLength(DatabaseBlobConsts.MaxNameLength); - b.Property(p => p.Content).HasMaxLength(DatabaseBlobConsts.MaxContentLength); + b.Property(p => p.Content).HasMaxLength(DatabaseBlobConsts.MaxContentLength); - b.HasOne().WithMany().HasForeignKey(p => p.ContainerId); + b.HasOne().WithMany().HasForeignKey(p => p.ContainerId); - b.HasIndex(x => new {x.TenantId, x.ContainerId, x.Name}); + b.HasIndex(x => new { x.TenantId, x.ContainerId, x.Name }); - b.ApplyObjectExtensionMappings(); - }); + b.ApplyObjectExtensionMappings(); + }); - builder.TryConfigureObjectExtensions(); - } + builder.TryConfigureObjectExtensions(); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobContainerRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobContainerRepository.cs index 64b7e3e40a..8f580b941f 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobContainerRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobContainerRepository.cs @@ -6,19 +6,18 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public class EfCoreDatabaseBlobContainerRepository : EfCoreRepository, IDatabaseBlobContainerRepository { - public class EfCoreDatabaseBlobContainerRepository : EfCoreRepository, IDatabaseBlobContainerRepository + public EfCoreDatabaseBlobContainerRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) { - public EfCoreDatabaseBlobContainerRepository(IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } + } - public virtual async Task FindAsync(string name, CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .FirstOrDefaultAsync(x => x.Name == name, GetCancellationToken(cancellationToken)); - } + public virtual async Task FindAsync(string name, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .FirstOrDefaultAsync(x => x.Name == name, GetCancellationToken(cancellationToken)); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobRepository.cs index 3aff095eed..ca128dcc89 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/EfCoreDatabaseBlobRepository.cs @@ -6,55 +6,54 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public class EfCoreDatabaseBlobRepository : EfCoreRepository, + IDatabaseBlobRepository { - public class EfCoreDatabaseBlobRepository : EfCoreRepository, - IDatabaseBlobRepository + public EfCoreDatabaseBlobRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) { - public EfCoreDatabaseBlobRepository(IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } + } - public virtual async Task FindAsync( - Guid containerId, - string name, - CancellationToken cancellationToken = default) - { - return (await GetDbSetAsync()) - .FirstOrDefault( - x => x.ContainerId == containerId && x.Name == name + public virtual async Task FindAsync( + Guid containerId, + string name, + CancellationToken cancellationToken = default) + { + return (await GetDbSetAsync()) + .FirstOrDefault( + x => x.ContainerId == containerId && x.Name == name + ); + } + + public virtual async Task ExistsAsync( + Guid containerId, + string name, + CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .AnyAsync( + x => x.ContainerId == containerId && x.Name == name, + GetCancellationToken(cancellationToken) ); - } + } - public virtual async Task ExistsAsync( - Guid containerId, - string name, - CancellationToken cancellationToken = default) - { - return await (await GetDbSetAsync()) - .AnyAsync( - x => x.ContainerId == containerId && x.Name == name, - GetCancellationToken(cancellationToken) - ); - } + public virtual async Task DeleteAsync( + Guid containerId, + string name, + bool autoSave = false, + CancellationToken cancellationToken = default) + { + //TODO: Should extract this logic to out of the repository and remove this method completely - public virtual async Task DeleteAsync( - Guid containerId, - string name, - bool autoSave = false, - CancellationToken cancellationToken = default) + var blob = await FindAsync(containerId, name, cancellationToken); + if (blob == null) { - //TODO: Should extract this logic to out of the repository and remove this method completely - - var blob = await FindAsync(containerId, name, cancellationToken); - if (blob == null) - { - return false; - } - - await base.DeleteAsync(blob, autoSave, cancellationToken: GetCancellationToken(cancellationToken)); - return true; + return false; } + + await base.DeleteAsync(blob, autoSave, cancellationToken: GetCancellationToken(cancellationToken)); + return true; } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/IBlobStoringDbContext.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/IBlobStoringDbContext.cs index 16e99cbc9a..b36c0753d3 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/IBlobStoringDbContext.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo/Abp/BlobStoring/Database/EntityFrameworkCore/IBlobStoringDbContext.cs @@ -2,13 +2,12 @@ using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +[ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] +public interface IBlobStoringDbContext : IEfCoreDbContext { - [ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] - public interface IBlobStoringDbContext : IEfCoreDbContext - { - DbSet BlobContainers { get; } + DbSet BlobContainers { get; } - DbSet Blobs { get; } - } -} \ No newline at end of file + DbSet Blobs { get; } +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs index 9ee224e4f4..abd8b35732 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs @@ -2,20 +2,19 @@ using Volo.Abp.Studio; using Volo.Abp.VirtualFileSystem; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] +public class AbpBlobStoringDatabaseInstallerModule : AbpModule { - [DependsOn( - typeof(AbpStudioModuleInstallerModule), - typeof(AbpVirtualFileSystemModule) - )] - public class AbpBlobStoringDatabaseInstallerModule : 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/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs index ea82db0c8c..945d229dc2 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs @@ -3,22 +3,21 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; using Volo.Abp.Studio.ModuleInstalling; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[Dependency(ServiceLifetime.Transient, ReplaceServices = true)] +[ExposeServices(typeof(IModuleInstallingPipelineBuilder))] +public class BlobStoringDatabaseInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency { - [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] - [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] - public class BlobStoringDatabaseInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + public async Task BuildAsync(ModuleInstallingContext context) { - public async Task BuildAsync(ModuleInstallingContext context) - { - context.AddEfCoreConfigurationMethodDeclaration( - new EfCoreConfigurationMethodDeclaration( - "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", - "ConfigureBlobStoring" - ) - ); - - return GetBasePipeline(context); - } + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", + "ConfigureBlobStoring" + ) + ); + + return GetBasePipeline(context); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringDatabaseMongoDbModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringDatabaseMongoDbModule.cs index 1ad7341a25..5aa4f25164 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringDatabaseMongoDbModule.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringDatabaseMongoDbModule.cs @@ -2,21 +2,20 @@ using Volo.Abp.Modularity; using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[DependsOn( + typeof(BlobStoringDatabaseDomainModule), + typeof(AbpMongoDbModule) + )] +public class BlobStoringDatabaseMongoDbModule : AbpModule { - [DependsOn( - typeof(BlobStoringDatabaseDomainModule), - typeof(AbpMongoDbModule) - )] - public class BlobStoringDatabaseMongoDbModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + context.Services.AddMongoDbContext(options => { - context.Services.AddMongoDbContext(options => - { - options.AddRepository(); - options.AddRepository(); - }); - } + options.AddRepository(); + options.AddRepository(); + }); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContext.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContext.cs index b07847a204..d0be5f4973 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContext.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContext.cs @@ -2,20 +2,19 @@ using Volo.Abp.Data; using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] +public class BlobStoringMongoDbContext : AbpMongoDbContext, IBlobStoringMongoDbContext { - [ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] - public class BlobStoringMongoDbContext : AbpMongoDbContext, IBlobStoringMongoDbContext - { - public IMongoCollection BlobContainers => Collection(); + public IMongoCollection BlobContainers => Collection(); - public IMongoCollection Blobs => Collection(); + public IMongoCollection Blobs => Collection(); - protected override void CreateModel(IMongoModelBuilder modelBuilder) - { - base.CreateModel(modelBuilder); + protected override void CreateModel(IMongoModelBuilder modelBuilder) + { + base.CreateModel(modelBuilder); - modelBuilder.ConfigureBlobStoring(); - } + modelBuilder.ConfigureBlobStoring(); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContextExtensions.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContextExtensions.cs index cc5b6720b7..7943215534 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContextExtensions.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/BlobStoringMongoDbContextExtensions.cs @@ -1,23 +1,22 @@ using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +public static class BlobStoringMongoDbContextExtensions { - public static class BlobStoringMongoDbContextExtensions + public static void ConfigureBlobStoring( + this IMongoModelBuilder builder) { - public static void ConfigureBlobStoring( - this IMongoModelBuilder builder) - { - Check.NotNull(builder, nameof(builder)); + Check.NotNull(builder, nameof(builder)); - builder.Entity(b => - { - b.CollectionName = BlobStoringDatabaseDbProperties.DbTablePrefix + "BlobContainers"; - }); + builder.Entity(b => + { + b.CollectionName = BlobStoringDatabaseDbProperties.DbTablePrefix + "BlobContainers"; + }); - builder.Entity(b => - { - b.CollectionName = BlobStoringDatabaseDbProperties.DbTablePrefix + "Blobs"; - }); - } + builder.Entity(b => + { + b.CollectionName = BlobStoringDatabaseDbProperties.DbTablePrefix + "Blobs"; + }); } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/IBlobStoringMongoDbContext.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/IBlobStoringMongoDbContext.cs index d7a9eb3966..1fcf61b146 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/IBlobStoringMongoDbContext.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/IBlobStoringMongoDbContext.cs @@ -2,13 +2,12 @@ using Volo.Abp.Data; using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] +public interface IBlobStoringMongoDbContext : IAbpMongoDbContext { - [ConnectionStringName(BlobStoringDatabaseDbProperties.ConnectionStringName)] - public interface IBlobStoringMongoDbContext : IAbpMongoDbContext - { - IMongoCollection BlobContainers { get; } - - IMongoCollection Blobs { get; } - } + IMongoCollection BlobContainers { get; } + + IMongoCollection Blobs { get; } } diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobContainerRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobContainerRepository.cs index 9777b329f8..f97589a4cf 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobContainerRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobContainerRepository.cs @@ -4,18 +4,17 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +public class MongoDbDatabaseBlobContainerRepository : MongoDbRepository, IDatabaseBlobContainerRepository { - public class MongoDbDatabaseBlobContainerRepository : MongoDbRepository, IDatabaseBlobContainerRepository + public MongoDbDatabaseBlobContainerRepository(IMongoDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + } + + public virtual async Task FindAsync(string name, CancellationToken cancellationToken = default) { - public MongoDbDatabaseBlobContainerRepository(IMongoDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } - - public virtual async Task FindAsync(string name, CancellationToken cancellationToken = default) - { - return await base.FindAsync(x => x.Name == name, cancellationToken: GetCancellationToken(cancellationToken)); - } + return await base.FindAsync(x => x.Name == name, cancellationToken: GetCancellationToken(cancellationToken)); } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs index 17945a87db..4610043405 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo/Abp/BlobStoring/Database/MongoDB/MongoDbDatabaseBlobRepository.cs @@ -5,51 +5,50 @@ using System.Threading.Tasks; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +public class MongoDbDatabaseBlobRepository : MongoDbRepository, IDatabaseBlobRepository { - public class MongoDbDatabaseBlobRepository : MongoDbRepository, IDatabaseBlobRepository + public MongoDbDatabaseBlobRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) { - public MongoDbDatabaseBlobRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) - { - } + } - public virtual async Task FindAsync(Guid containerId, string name, CancellationToken cancellationToken = default) - { - cancellationToken = GetCancellationToken(cancellationToken); + public virtual async Task FindAsync(Guid containerId, string name, CancellationToken cancellationToken = default) + { + cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) - .FirstOrDefaultAsync( - x => x.ContainerId == containerId && x.Name == name, - cancellationToken - ); - } + return await (await GetMongoQueryableAsync(cancellationToken)) + .FirstOrDefaultAsync( + x => x.ContainerId == containerId && x.Name == name, + cancellationToken + ); + } - public virtual async Task ExistsAsync(Guid containerId, string name, CancellationToken cancellationToken = default) - { - cancellationToken = GetCancellationToken(cancellationToken); + public virtual async Task ExistsAsync(Guid containerId, string name, CancellationToken cancellationToken = default) + { + cancellationToken = GetCancellationToken(cancellationToken); - return await (await GetMongoQueryableAsync(cancellationToken)) - .AnyAsync( - x => x.ContainerId == containerId && x.Name == name, - cancellationToken - ); - } + return await (await GetMongoQueryableAsync(cancellationToken)) + .AnyAsync( + x => x.ContainerId == containerId && x.Name == name, + cancellationToken + ); + } - public virtual async Task DeleteAsync( - Guid containerId, - string name, - bool autoSave = false, - CancellationToken cancellationToken = default) + public virtual async Task DeleteAsync( + Guid containerId, + string name, + bool autoSave = false, + CancellationToken cancellationToken = default) + { + var blob = await FindAsync(containerId, name, cancellationToken); + if (blob == null) { - var blob = await FindAsync(containerId, name, cancellationToken); - if (blob == null) - { - return false; - } + return false; + } - await base.DeleteAsync(blob, autoSave, cancellationToken); + await base.DeleteAsync(blob, autoSave, cancellationToken); - return true; - } + return true; } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestBase.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestBase.cs index 405ac84008..710d56e53e 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestBase.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestBase.cs @@ -1,10 +1,9 @@ -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +/* Inherit from this class for your domain layer tests. + * See SampleManager_Tests for example. + */ +public abstract class BlobStoringDatabaseDomainTestBase : BlobStoringDatabaseTestBase { - /* Inherit from this class for your domain layer tests. - * See SampleManager_Tests for example. - */ - public abstract class BlobStoringDatabaseDomainTestBase : BlobStoringDatabaseTestBase - { - } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestModule.cs index a7ad7427f8..f2fcd93d5f 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/BlobStoringDatabaseDomainTestModule.cs @@ -1,13 +1,12 @@ using Volo.Abp.BlobStoring.Database.EntityFrameworkCore; using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[DependsOn( + typeof(BlobStoringDatabaseEntityFrameworkCoreTestModule) + )] +public class BlobStoringDatabaseDomainTestModule : AbpModule { - [DependsOn( - typeof(BlobStoringDatabaseEntityFrameworkCoreTestModule) - )] - public class BlobStoringDatabaseDomainTestModule : AbpModule - { - - } + } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestBase.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestBase.cs index d465616047..156e1b7648 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestBase.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestBase.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public abstract class BlobStoringDatabaseEntityFrameworkCoreTestBase : BlobStoringDatabaseTestBase { - public abstract class BlobStoringDatabaseEntityFrameworkCoreTestBase : BlobStoringDatabaseTestBase - { - } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs index 9b9c235cc2..082b1640b7 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/BlobStoringDatabaseEntityFrameworkCoreTestModule.cs @@ -5,37 +5,36 @@ using Microsoft.EntityFrameworkCore.Storage; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +[DependsOn( + typeof(BlobStoringDatabaseTestBaseModule), + typeof(BlobStoringDatabaseEntityFrameworkCoreModule) + )] +public class BlobStoringDatabaseEntityFrameworkCoreTestModule : AbpModule { - [DependsOn( - typeof(BlobStoringDatabaseTestBaseModule), - typeof(BlobStoringDatabaseEntityFrameworkCoreModule) - )] - public class BlobStoringDatabaseEntityFrameworkCoreTestModule : 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 BlobStoringDbContext( + new DbContextOptionsBuilder().UseSqlite(connection).Options + ).GetService().CreateTables(); - new BlobStoringDbContext( - new DbContextOptionsBuilder().UseSqlite(connection).Options - ).GetService().CreateTables(); - - return connection; - } + return connection; } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreContainer_Tests.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreContainer_Tests.cs index bed4dae9c9..0a642482a1 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreContainer_Tests.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreContainer_Tests.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public class EfCoreContainer_Tests : BlobContainer_Tests { - public class EfCoreContainer_Tests : BlobContainer_Tests - { - - } -} \ No newline at end of file + +} diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreDatabaseBlobContainer_Tests.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreDatabaseBlobContainer_Tests.cs index 094217f9e6..1f09ebe489 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreDatabaseBlobContainer_Tests.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/EntityFrameworkCore/EfCoreDatabaseBlobContainer_Tests.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore +namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore; + +public class EfCoreDatabaseBlobContainer_Tests : DatabaseBlobContainer_Tests { - public class EfCoreDatabaseBlobContainer_Tests : DatabaseBlobContainer_Tests - { - } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestBase.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestBase.cs index c96746cbb2..0f573d1f1c 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestBase.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestBase.cs @@ -1,7 +1,6 @@ -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +public abstract class BlobStoringDatabaseMongoDbTestBase : BlobStoringDatabaseTestBase { - public abstract class BlobStoringDatabaseMongoDbTestBase : BlobStoringDatabaseTestBase - { - } -} \ No newline at end of file +} diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs index 2121949da7..982a389404 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs @@ -3,25 +3,24 @@ using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.Uow; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[DependsOn( + typeof(BlobStoringDatabaseTestBaseModule), + typeof(BlobStoringDatabaseMongoDbModule) +)] +public class BlobStoringDatabaseMongoDbTestModule : AbpModule { - [DependsOn( - typeof(BlobStoringDatabaseTestBaseModule), - typeof(BlobStoringDatabaseMongoDbModule) - )] - public class BlobStoringDatabaseMongoDbTestModule : 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/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbContainer_Tests.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbContainer_Tests.cs index d8f5eec2b7..e4c78c1e90 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbContainer_Tests.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbContainer_Tests.cs @@ -1,10 +1,9 @@ using Xunit; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[Collection(MongoTestCollection.Name)] +public class MongoDbContainer_Tests : BlobContainer_Tests { - [Collection(MongoTestCollection.Name)] - public class MongoDbContainer_Tests : BlobContainer_Tests - { - - } -} \ No newline at end of file + +} diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbDatabaseBlobContainer_Tests.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbDatabaseBlobContainer_Tests.cs index 4d476d5e75..4026326f18 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbDatabaseBlobContainer_Tests.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbDatabaseBlobContainer_Tests.cs @@ -1,10 +1,9 @@ using Xunit; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.MongoDB; + +[Collection(MongoTestCollection.Name)] +public class MongoDbDatabaseBlobContainer_Tests : DatabaseBlobContainer_Tests { - [Collection(MongoTestCollection.Name)] - public class MongoDbDatabaseBlobContainer_Tests : DatabaseBlobContainer_Tests - { - } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs index 916279f57d..875d510727 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs @@ -1,22 +1,21 @@ using System; using Mongo2Go; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.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/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoTestCollection.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoTestCollection.cs index b9778249e4..9a543f4b22 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoTestCollection.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoTestCollection.cs @@ -1,10 +1,9 @@ using Xunit; -namespace Volo.Abp.BlobStoring.Database.MongoDB +namespace Volo.Abp.BlobStoring.Database.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/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBase.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBase.cs index 7b426f55dc..8aef905427 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBase.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBase.cs @@ -6,53 +6,52 @@ using Volo.Abp.Modularity; using Volo.Abp.Uow; using Volo.Abp.Testing; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public abstract class BlobStoringDatabaseTestBase : AbpIntegratedTest + where TStartupModule : IAbpModule { - public abstract class BlobStoringDatabaseTestBase : AbpIntegratedTest - where TStartupModule : IAbpModule + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) { - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } + options.UseAutofac(); + } - protected virtual Task WithUnitOfWorkAsync(Func func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } + protected virtual Task WithUnitOfWorkAsync(Func func) + { + return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); + } - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func action) + protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func action) + { + using (var scope = ServiceProvider.CreateScope()) { - using (var scope = ServiceProvider.CreateScope()) - { - var uowManager = scope.ServiceProvider.GetRequiredService(); + var uowManager = scope.ServiceProvider.GetRequiredService(); - using (var uow = uowManager.Begin(options)) - { - await action(); + using (var uow = uowManager.Begin(options)) + { + await action(); - await uow.CompleteAsync(); - } + await uow.CompleteAsync(); } } + } - protected virtual Task WithUnitOfWorkAsync(Func> func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } + protected virtual Task WithUnitOfWorkAsync(Func> func) + { + return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); + } - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func> func) + protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func> func) + { + using (var scope = ServiceProvider.CreateScope()) { - using (var scope = ServiceProvider.CreateScope()) + var uowManager = scope.ServiceProvider.GetRequiredService(); + + using (var uow = uowManager.Begin(options)) { - var uowManager = scope.ServiceProvider.GetRequiredService(); - - using (var uow = uowManager.Begin(options)) - { - var result = await func(); - await uow.CompleteAsync(); - return result; - } + var result = await func(); + await uow.CompleteAsync(); + return result; } } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBaseModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBaseModule.cs index 96e3bcaa90..862ed7dc94 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBaseModule.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/BlobStoringDatabaseTestBaseModule.cs @@ -3,28 +3,27 @@ using Volo.Abp.Authorization; using Volo.Abp.Autofac; using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpTestBaseModule), + typeof(AbpAuthorizationModule), + typeof(BlobStoringDatabaseDomainModule), + typeof(AbpBlobStoringTestModule) + )] +public class BlobStoringDatabaseTestBaseModule : AbpModule { - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpTestBaseModule), - typeof(AbpAuthorizationModule), - typeof(BlobStoringDatabaseDomainModule), - typeof(AbpBlobStoringTestModule) - )] - public class BlobStoringDatabaseTestBaseModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAlwaysAllowAuthorization(); + context.Services.AddAlwaysAllowAuthorization(); - Configure(options => + Configure(options => + { + options.Containers.ConfigureAll((containerName, containerConfiguration) => { - options.Containers.ConfigureAll((containerName, containerConfiguration) => - { - containerConfiguration.UseDatabase(); - }); + containerConfiguration.UseDatabase(); }); - } + }); } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/DatabaseBlobContainer_Tests.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/DatabaseBlobContainer_Tests.cs index 542bb82113..cef7a99995 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/DatabaseBlobContainer_Tests.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/DatabaseBlobContainer_Tests.cs @@ -1,10 +1,9 @@ using Volo.Abp.Modularity; -namespace Volo.Abp.BlobStoring.Database +namespace Volo.Abp.BlobStoring.Database; + +public abstract class DatabaseBlobContainer_Tests : BlobContainer_Tests + where TStartupModule : IAbpModule { - public abstract class DatabaseBlobContainer_Tests : BlobContainer_Tests - where TStartupModule : IAbpModule - { - } } diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Security/FakeCurrentPrincipalAccessor.cs index de076b1368..8742d8bc21 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -3,41 +3,40 @@ using System.Security.Claims; using Volo.Abp.DependencyInjection; using Volo.Abp.Security.Claims; -namespace Volo.Abp.BlobStoring.Database.Security +namespace Volo.Abp.BlobStoring.Database.Security; + +[Dependency(ReplaceServices = true)] +public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor { - [Dependency(ReplaceServices = true)] - public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor + protected override ClaimsPrincipal GetClaimsPrincipal() { - protected override ClaimsPrincipal GetClaimsPrincipal() - { - return GetPrincipal(); - } + return GetPrincipal(); + } - private ClaimsPrincipal _principal; + private ClaimsPrincipal _principal; - private ClaimsPrincipal GetPrincipal() + private ClaimsPrincipal GetPrincipal() + { + if (_principal == null) { - if (_principal == null) + lock (this) { - lock (this) + if (_principal == null) { - if (_principal == null) - { - _principal = new ClaimsPrincipal( - new ClaimsIdentity( - new List - { + _principal = new ClaimsPrincipal( + new ClaimsIdentity( + new List + { new Claim(AbpClaimTypes.UserId,"2e701e62-0953-4dd3-910b-dc6cc93ccb0d"), new Claim(AbpClaimTypes.UserName,"admin"), new Claim(AbpClaimTypes.Email,"admin@abp.io") - } - ) - ); - } + } + ) + ); } } - - return _principal; } + + return _principal; } }