From 3e5181c360b37467d593f3972f01fe6d4564ed65 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 21 Jun 2022 11:35:38 +0300 Subject: [PATCH 1/7] Cli: Publish events on project creation steps --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 12 ++++---- .../Commands/ProjectCreationCommandBase.cs | 29 +++++++++++++++++-- .../Events/ProjectCreationProgressEvent.cs | 6 ++++ .../ProjectBuilding/TemplateProjectBuilder.cs | 13 +++++++-- 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Events/ProjectCreationProgressEvent.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index ebad70ce76..aac5ce860c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -16,13 +16,14 @@ using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Local; namespace Volo.Abp.Cli.Commands; public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransientDependency { public const string Name = "new"; - + protected TemplateProjectBuilder TemplateProjectBuilder { get; } public ITemplateInfoProvider TemplateInfoProvider { get; } @@ -33,8 +34,9 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien ICmdHelper cmdHelper, IInstallLibsService installLibsService, AngularPwaSupportAdder angularPwaSupportAdder, - InitialMigrationCreator ınitialMigrationCreator) - : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, angularPwaSupportAdder, ınitialMigrationCreator) + InitialMigrationCreator ınitialMigrationCreator, + ILocalEventBus eventBus) + : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, angularPwaSupportAdder, ınitialMigrationCreator, eventBus) { TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; @@ -79,10 +81,10 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); - RunGraphBuildForMicroserviceServiceTemplate(projectArgs); + await RunGraphBuildForMicroserviceServiceTemplate(projectArgs); await CreateInitialMigrationsAsync(projectArgs); await RunInstallLibsForWebTemplateAsync(projectArgs); - ConfigurePwaSupportForAngular(projectArgs); + await ConfigurePwaSupportForAngular(projectArgs); OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 07741779b1..8ef7bcb7e1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -13,10 +13,12 @@ using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.LIbs; using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Events; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; using Volo.Abp.Cli.ProjectBuilding.Templates.Module; using Volo.Abp.Cli.Utils; +using Volo.Abp.EventBus.Local; namespace Volo.Abp.Cli.Commands; @@ -28,6 +30,7 @@ public abstract class ProjectCreationCommandBase public IInstallLibsService InstallLibsService { get; } public AngularPwaSupportAdder AngularPwaSupportAdder { get; } public InitialMigrationCreator InitialMigrationCreator { get; } + public ILocalEventBus EventBus { get; } public ILogger Logger { get; set; } public ProjectCreationCommandBase( @@ -36,7 +39,8 @@ public abstract class ProjectCreationCommandBase ICmdHelper cmdHelper, IInstallLibsService installLibsService, AngularPwaSupportAdder angularPwaSupportAdder, - InitialMigrationCreator initialMigrationCreator) + InitialMigrationCreator initialMigrationCreator, + ILocalEventBus eventBus) { ConnectionStringProvider = connectionStringProvider; SolutionPackageVersionFinder = solutionPackageVersionFinder; @@ -44,6 +48,7 @@ public abstract class ProjectCreationCommandBase InstallLibsService = installLibsService; AngularPwaSupportAdder = angularPwaSupportAdder; InitialMigrationCreator = initialMigrationCreator; + EventBus = eventBus; Logger = NullLogger.Instance; } @@ -190,6 +195,10 @@ public abstract class ProjectCreationCommandBase protected void ExtractProjectZip(ProjectBuildResult project, string outputFolder) { + EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Extracting solution to file system" + }, false); + using (var templateFileStream = new MemoryStream(project.ZipContent)) { using (var zipInputStream = new ZipInputStream(templateFileStream)) @@ -321,10 +330,14 @@ public abstract class ProjectCreationCommandBase throw new CliUsageException("The option you provided for Database Provider is invalid!"); } - protected virtual void RunGraphBuildForMicroserviceServiceTemplate(ProjectBuildArgs projectArgs) + protected virtual async Task RunGraphBuildForMicroserviceServiceTemplate(ProjectBuildArgs projectArgs) { if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(projectArgs.TemplateName)) { + await EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Building the microservice solution" + }, false); + CmdHelper.RunCmd("dotnet build /graphbuild", projectArgs.OutputFolder); } } @@ -337,6 +350,11 @@ public abstract class ProjectCreationCommandBase MicroserviceServiceTemplateBase.IsMicroserviceTemplate(projectArgs.TemplateName)) { Logger.LogInformation("Installing client-side packages..."); + + await EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Installing client-side packages" + }, false); + await InstallLibsService.InstallLibsAsync(projectArgs.OutputFolder); } } @@ -373,10 +391,14 @@ public abstract class ProjectCreationCommandBase return; } + await EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Creating the initial migration" + }, false); + await InitialMigrationCreator.CreateAsync(Path.GetDirectoryName(efCoreProjectPath), isLayeredTemplate); } - protected void ConfigurePwaSupportForAngular(ProjectBuildArgs projectArgs) + protected async Task ConfigurePwaSupportForAngular(ProjectBuildArgs projectArgs) { var isAngular = projectArgs.UiFramework == UiFramework.Angular; var isPwa = projectArgs.Pwa; @@ -384,6 +406,7 @@ public abstract class ProjectCreationCommandBase if (isAngular && isPwa) { Logger.LogInformation("Adding PWA Support to Angular app."); + AngularPwaSupportAdder.AddPwaSupport(projectArgs.OutputFolder); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Events/ProjectCreationProgressEvent.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Events/ProjectCreationProgressEvent.cs new file mode 100644 index 0000000000..24c424f4cb --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Events/ProjectCreationProgressEvent.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.Cli.ProjectBuilding.Events; + +public class ProjectCreationProgressEvent +{ + public string Message { get; set; } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index 5743a423c0..db430296fa 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -10,8 +10,10 @@ using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Licensing; using Volo.Abp.Cli.ProjectBuilding.Analyticses; using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Events; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Local; using Volo.Abp.Json; namespace Volo.Abp.Cli.ProjectBuilding; @@ -26,6 +28,7 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency protected AbpCliOptions Options { get; } protected IJsonSerializer JsonSerializer { get; } protected IApiKeyService ApiKeyService { get; } + protected ILocalEventBus EventBus { get; } private readonly IConfiguration _configuration; @@ -35,7 +38,8 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency IOptions options, IJsonSerializer jsonSerializer, IApiKeyService apiKeyService, - IConfiguration configuration) + IConfiguration configuration, + ILocalEventBus eventBus) { SourceCodeStore = sourceCodeStore; TemplateInfoProvider = templateInfoProvider; @@ -43,6 +47,7 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency Options = options.Value; JsonSerializer = jsonSerializer; ApiKeyService = apiKeyService; + EventBus = eventBus; _configuration = configuration; Logger = NullLogger.Instance; @@ -116,7 +121,11 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency { appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) < new SemanticVersion(4, 3, 99); } - + + await EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Preparing the solution according to preferences" + }, false); + TemplateProjectBuildPipelineBuilder.Build(context).Execute(); if (!templateInfo.DocumentUrl.IsNullOrEmpty()) From be9e24d27870b194e00cf027b65731143d65dd97 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 23 Jun 2022 14:57:51 +0800 Subject: [PATCH 2/7] Remove `Logout` page. --- ....cs => 20220623064459_Initial.Designer.cs} | 13 ++++++++--- ...5_Initial.cs => 20220623064459_Initial.cs} | 2 ++ .../ServerDbContextModelSnapshot.cs | 11 ++++++++-- .../Controllers/LogoutController.cs | 19 +++++----------- .../Abp/OpenIddict/Views/Logout/Logout.cshtml | 22 ------------------- .../Localization/OpenIddict/el.json | 6 ++--- .../Localization/OpenIddict/en.json | 4 +--- .../Localization/OpenIddict/pt-BR.json | 6 ++--- .../Localization/OpenIddict/tr.json | 4 +--- .../Localization/OpenIddict/zh-Hans.json | 4 +--- .../Localization/OpenIddict/zh-Hant.json | 4 +--- 11 files changed, 34 insertions(+), 61 deletions(-) rename modules/openiddict/app/OpenIddict.Demo.Server/Migrations/{20220425082215_Initial.Designer.cs => 20220623064459_Initial.Designer.cs} (99%) rename modules/openiddict/app/OpenIddict.Demo.Server/Migrations/{20220425082215_Initial.cs => 20220623064459_Initial.cs} (99%) delete mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.Designer.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.Designer.cs similarity index 99% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.Designer.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.Designer.cs index be749fd719..db5f69843f 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.Designer.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace OpenIddict.Demo.Server.Migrations { [DbContext(typeof(ServerDbContext))] - [Migration("20220425082215_Initial")] + [Migration("20220623064459_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -21,7 +21,7 @@ namespace OpenIddict.Demo.Server.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.0") + .HasAnnotation("ProductVersion", "6.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); @@ -336,7 +336,8 @@ namespace OpenIddict.Demo.Server.Migrations .HasColumnName("ExtraProperties"); b.Property("IsActive") - .HasColumnType("bit"); + .HasColumnType("bit") + .HasColumnName("IsActive"); b.Property("IsDeleted") .ValueGeneratedOnAdd() @@ -682,6 +683,9 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientUri") + .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) @@ -732,6 +736,9 @@ namespace OpenIddict.Demo.Server.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); + b.Property("LogoUri") + .HasColumnType("nvarchar(max)"); + b.Property("Permissions") .HasColumnType("nvarchar(max)"); diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.cs similarity index 99% rename from modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.cs rename to modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.cs index 5d8df54c6a..823204d341 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220425082215_Initial.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/20220623064459_Initial.cs @@ -237,6 +237,8 @@ namespace OpenIddict.Demo.Server.Migrations RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), Requirements = table.Column(type: "nvarchar(max)", nullable: true), Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ClientUri = table.Column(type: "nvarchar(max)", nullable: true), + LogoUri = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs index 6ec3ed82f7..0ed7013f11 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Migrations/ServerDbContextModelSnapshot.cs @@ -19,7 +19,7 @@ namespace OpenIddict.Demo.Server.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.0") + .HasAnnotation("ProductVersion", "6.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); @@ -334,7 +334,8 @@ namespace OpenIddict.Demo.Server.Migrations .HasColumnName("ExtraProperties"); b.Property("IsActive") - .HasColumnType("bit"); + .HasColumnType("bit") + .HasColumnName("IsActive"); b.Property("IsDeleted") .ValueGeneratedOnAdd() @@ -680,6 +681,9 @@ namespace OpenIddict.Demo.Server.Migrations b.Property("ClientSecret") .HasColumnType("nvarchar(max)"); + b.Property("ClientUri") + .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) @@ -730,6 +734,9 @@ namespace OpenIddict.Demo.Server.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); + b.Property("LogoUri") + .HasColumnType("nvarchar(max)"); + b.Property("Permissions") .HasColumnType("nvarchar(max)"); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs index 404fd0da14..9f92fa7f23 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs @@ -10,21 +10,12 @@ namespace Volo.Abp.OpenIddict.Controllers; public class LogoutController : AbpOpenIdDictControllerBase { [HttpGet] - public virtual Task GetAsync() + public virtual async Task GetAsync() { - return Task.FromResult(View("Logout")); - } - - [HttpPost] - public virtual async Task PostAsync() - { - if (await HasFormValueAsync("accept")) - { - // Ask ASP.NET Core Identity to delete the local and external cookies created - // when the user agent is redirected from the external identity provider - // after a successful authentication flow (e.g Google or Facebook). - await SignInManager.SignOutAsync(); - } + // Ask ASP.NET Core Identity to delete the local and external cookies created + // when the user agent is redirected from the external identity provider + // after a successful authentication flow (e.g Google or Facebook). + await SignInManager.SignOutAsync(); // Returning a SignOutResult will ask OpenIddict to redirect the user agent // to the post_logout_redirect_uri specified by the client application or to diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml deleted file mode 100644 index 6838e92ad5..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml +++ /dev/null @@ -1,22 +0,0 @@ -@using Microsoft.Extensions.Primitives -@using Volo.Abp.OpenIddict.Localization -@using Microsoft.AspNetCore.Mvc.Localization -@model AuthorizeViewModel -@inject IHtmlLocalizer L - -
-

@L["LogOut"]

-

@L["AreYouSureYouWantToSignOut"]

- -
- @Html.AntiForgeryToken() - @* Flow the request parameters so they can be received by the LogoutPost action: *@ - @foreach (var parameter in Context.Request.HasFormContentType ? (IEnumerable>) Context.Request.Form : Context.Request.Query) - { - - } - - - - -
diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json index de0b8ec150..28dbc2cb6f 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/el.json @@ -10,8 +10,6 @@ "DoYouWantToGrantAccessToYourData": "Θέλετε να παραχωρήσετε στον χρήστη {0} πρόσβαση στα δεδομένα σας;", "ScopesRequested": "Ζητούνται πεδία εφαρμογής", "Accept": "Αποδοχή", - "Deny": "Άρνηση", - "LogOut": "Αποσύνδεση", - "AreYouSureYouWantToSignOut": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε;" + "Deny": "Άρνηση" } -} \ No newline at end of file +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json index 8bd3a92007..9932b3f97e 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json @@ -10,8 +10,6 @@ "DoYouWantToGrantAccessToYourData": "Do you want to grant {0} access to your data?", "ScopesRequested": "Scopes requested", "Accept": "Accept", - "Deny": "Deny", - "LogOut": "Log out", - "AreYouSureYouWantToSignOut": "Are you sure you want to sign out?" + "Deny": "Deny" } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json index ebcf57b00e..2952a0352c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/pt-BR.json @@ -10,8 +10,6 @@ "DoYouWantToGrantAccessToYourData": "Deseja permitir {0} acesse seus dados?", "ScopesRequested": "Escopo solicitado", "Accept": "Aceitar", - "Deny": "Negar", - "LogOut": "Sair", - "AreYouSureYouWantToSignOut": "Tem certeza que deseja sair?" + "Deny": "Negar" } -} \ No newline at end of file +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json index 39e525e27e..5ad9154636 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json @@ -10,8 +10,6 @@ "DoYouWantToGrantAccessToYourData": "Do you want to grant {0} access to your data?", "ScopesRequested": "İstenen kapsamlar", "Accept": "Kabul etmek", - "Deny": "Reddetmek", - "LogOut": "Çıkış Yap", - "AreYouSureYouWantToSignOut": "Çıkış yapmak istediğinden emin misin?" + "Deny": "Reddetmek" } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json index 3c6fd502b3..9c4577d9c0 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json @@ -10,8 +10,6 @@ "DoYouWantToGrantAccessToYourData": "是否要授予 {0} 访问你的数据的权限?", "ScopesRequested": "要求的Scope", "Accept": "同意", - "Deny": "拒绝", - "LogOut": "注销", - "AreYouSureYouWantToSignOut": "你确定要退出吗?" + "Deny": "拒绝" } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json index 5d22654a76..8ecebfc676 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json @@ -11,8 +11,6 @@ "DoYouWantToGrantAccessToYourData": "是否要授予 {0} 訪問你的數據的權限?", "ScopesRequested": "要求的Scope", "Accept": "接受", - "Deny": "拒絕", - "LogOut": "註銷", - "AreYouSureYouWantToSignOut": "你確定要退出嗎?" + "Deny": "拒絕" } } From a3b8f0828bf2a80bde46391376f5a863c057e4dd Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 23 Jun 2022 15:15:11 +0300 Subject: [PATCH 3/7] Update TemplateProjectBuilder.cs --- .../Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index db430296fa..bc071a4288 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -59,6 +59,10 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency NormalizeArgs(args, templateInfo); + await EventBus.PublishAsync(new ProjectCreationProgressEvent { + Message = "Fetching the solution template" + }, false); + var templateFile = await SourceCodeStore.GetAsync( args.TemplateName, SourceCodeTypes.Template, From 73481e441954f0012aa08c9b7b74a95ead175cd8 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Thu, 23 Jun 2022 17:25:17 +0300 Subject: [PATCH 4/7] CLI: Remove the IdentityServer project from app template if it's not needed --- .../Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 75441af295..2503378828 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -349,6 +349,7 @@ public abstract class AppTemplateBase : TemplateInfo else { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.AuthServer")); steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds", "MyCompanyName.MyProjectName.HttpApi.Host")); steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44305")); @@ -388,6 +389,7 @@ public abstract class AppTemplateBase : TemplateInfo { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered")); steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.AuthServer")); steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44313")); @@ -409,6 +411,7 @@ public abstract class AppTemplateBase : TemplateInfo { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Host")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.AuthServer")); steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44303")); } @@ -439,6 +442,7 @@ public abstract class AppTemplateBase : TemplateInfo else { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.IdentityServer")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.AuthServer")); steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds", "MyCompanyName.MyProjectName.HttpApi.Host")); steps.Add(new AppTemplateChangeConsoleTestClientPortSettingsStep("44305")); From 91a6f41a188ab9aac709ddccb6359cdea1fa5282 Mon Sep 17 00:00:00 2001 From: JRoger Date: Fri, 24 Jun 2022 13:28:15 +0800 Subject: [PATCH 5/7] chore: Update typo in error message --- framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs b/framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs index 2a73b72932..741f6f0586 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/AbpApplicationBase.cs @@ -223,7 +223,7 @@ public abstract class AbpApplicationBase : IAbpApplication { if (_configuredServices) { - throw new AbpInitializationException("Services have already been configured! If you call ConfigureServicesAsync method, you must have set AbpApplicationCreationOptions.SkipConfigureServices tu true before."); + throw new AbpInitializationException("Services have already been configured! If you call ConfigureServicesAsync method, you must have set AbpApplicationCreationOptions.SkipConfigureServices to true before."); } } @@ -231,7 +231,7 @@ public abstract class AbpApplicationBase : IAbpApplication public virtual void ConfigureServices() { CheckMultipleConfigureServices(); - + var context = new ServiceConfigurationContext(Services); Services.AddSingleton(context); From 4115a9a23c85f87ff09b7f6337262bc17cc3195b Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 24 Jun 2022 14:47:18 +0800 Subject: [PATCH 6/7] Enhance MauiChangeApplicationIdGuidStep --- .../Steps/ChangeApplicationIdGuidStep.cs | 14 -------- .../Maui/MauiChangeApplicationIdGuidStep.cs | 34 +++++++++++++++++++ .../Templates/Maui/MauiTemplateBase.cs | 2 +- 3 files changed, 35 insertions(+), 15 deletions(-) delete mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangeApplicationIdGuidStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs deleted file mode 100644 index d37b7a67c3..0000000000 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeApplicationIdGuidStep.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Linq; - -namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; - -public class ChangeApplicationIdGuidStep: ProjectBuildPipelineStep -{ - public override void Execute(ProjectBuildContext context) - { - var projectFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.csproj")); - - projectFile?.SetContent(projectFile.Content.Replace("27317750-B571-4690-B433-B358B2480E01", Guid.NewGuid().ToString())); - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangeApplicationIdGuidStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangeApplicationIdGuidStep.cs new file mode 100644 index 0000000000..9bbaa8b553 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiChangeApplicationIdGuidStep.cs @@ -0,0 +1,34 @@ +using System; +using System.Linq; +using System.Xml; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.Utils; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.Maui; + +public class MauiChangeApplicationIdGuidStep: ProjectBuildPipelineStep +{ + public override void Execute(ProjectBuildContext context) + { + var projectFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.csproj") || f.Name.EndsWith("MyCompanyName.MyProjectName.Maui.csproj")); + + if (projectFile == null) + { + return; + } + + using (var stream = StreamHelper.GenerateStreamFromString(projectFile.Content)) + { + var doc = new XmlDocument { PreserveWhitespace = true }; + doc.Load(stream); + + var node = doc.SelectSingleNode("/Project/PropertyGroup/ApplicationIdGuid"); + if (node != null) + { + node.InnerText = Guid.NewGuid().ToString(); + } + + projectFile.SetContent(doc.OuterXml); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs index 399773ce32..c17d661efa 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Maui/MauiTemplateBase.cs @@ -16,7 +16,7 @@ public class MauiTemplateBase: TemplateInfo { var steps = new List { - new ChangeApplicationIdGuidStep() + new MauiChangeApplicationIdGuidStep() }; return steps; From 629390833d108eaae4013963edcf7bf664c0bb6c Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 24 Jun 2022 17:04:31 +0800 Subject: [PATCH 7/7] Fix typo in CLI document --- docs/en/CLI.md | 2 +- docs/zh-Hans/CLI.md | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 0597c0daf5..87522e2923 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -193,7 +193,7 @@ Example: abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic ```` -* This example adds the Volo.Abp.MongoDB package to the project. +* This example adds the `Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic` package to the project. #### Options diff --git a/docs/zh-Hans/CLI.md b/docs/zh-Hans/CLI.md index dcdf6c2303..bd2c75230b 100644 --- a/docs/zh-Hans/CLI.md +++ b/docs/zh-Hans/CLI.md @@ -168,10 +168,10 @@ abp add-package <包名> [options] 示例: ```` -abp add-package Volo.Abp.MongoDB +abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic ```` -* 示例中将Volo.Abp.MongoDB包添加到项目中. +* 示例中将`Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic`包添加到项目中. #### Options @@ -179,6 +179,12 @@ abp add-package Volo.Abp.MongoDB * `--with-source-code`: 下载包的源码到你的解决方案文件夹,而不是NuGet/NPM软件包. * `--add-to-solution-file`: 添加下载/创建的包添加到解决方案文件中,你在IDE中打开解决方案时也会看到包的项目. (仅当 `--with-source-code` 为 `True` 时可用.) +> 当前只有基本主题包([MVC](https://docs.abp.io/zh-Hans/abp/latest/UI/AspNetCore/Basic-Theme) 和 [Blazor](https://docs.abp.io/zh-Hans/abp/latest/UI/Blazor/Basic-Theme)) 可以下载. +> - Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic +> - Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme +> - Volo.Abp.AspNetCore.Components.Web.BasicTheme +> - Volo.Abp.AspNetCore.Components.Server.BasicTheme + ### add-module 通过查找模块的所有包,查找解决方案中的相关项目,并将每个包添加到解决方案中的相应项目,从而将[多包应用程序模块](Modules/Index)添加到解决方案中.