From 51e9b315b6fd958c36fb7b22532d64645d819020 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 28 Jan 2022 16:18:27 +0800 Subject: [PATCH] Add `AppNoLayersProTemplate`. --- .../ProjectBuilding/AbpIoSourceCodeStore.cs | 2 +- .../TemplateProjectBuildPipelineBuilder.cs | 3 +- .../ProjectBuilding/TemplateInfoProvider.cs | 2 + .../Templates/App/AppNoLayersProTemplate.cs | 16 ++++ .../Templates/App/AppNoLayersTemplate.cs | 91 +----------------- .../Templates/App/AppNoLayersTemplateBase.cs | 94 +++++++++++++++++++ 6 files changed, 118 insertions(+), 90 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersProTemplate.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 1e11ecb2f9..5aec31e0b9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -278,7 +278,7 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency } var matches = Regex.Matches(stringBuilder.ToString(), - $"({AppTemplate.TemplateName}|{AppNoLayersTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName}|{WpfTemplate.TemplateName})-(.+).zip"); + $"({AppTemplate.TemplateName}|{AppNoLayersProTemplate.TemplateName}|{AppNoLayersTemplate.TemplateName}|{AppProTemplate.TemplateName}|{ModuleTemplate.TemplateName}|{ModuleProTemplate.TemplateName}|{ConsoleTemplate.TemplateName}|{WpfTemplate.TemplateName})-(.+).zip"); foreach (Match match in matches) { templateList.Add((match.Groups[1].Value, match.Groups[2].Value)); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index 96ad8517b1..230a6018f3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -40,7 +40,8 @@ public static class TemplateProjectBuildPipelineBuilder pipeline.Steps.Add(new DatabaseManagementSystemChangeStep(context.Template.As().HasDbMigrations)); // todo: move to custom steps? } - if (context.Template.Name == AppNoLayersTemplate.TemplateName) + if (context.Template.Name == AppNoLayersTemplate.TemplateName || + context.Template.Name == AppNoLayersProTemplate.TemplateName) { pipeline.Steps.Add(new AppNoLayersDatabaseManagementSystemChangeStep()); // todo: move to custom steps? } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs index 8e1504fb8f..d41556812a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs @@ -54,6 +54,8 @@ public class TemplateInfoProvider : ITemplateInfoProvider, ITransientDependency return new AppTemplate(); case AppNoLayersTemplate.TemplateName: return new AppNoLayersTemplate(); + case AppNoLayersProTemplate.TemplateName: + return new AppNoLayersProTemplate(); case AppProTemplate.TemplateName: return new AppProTemplate(); case MicroserviceProTemplate.TemplateName: diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersProTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersProTemplate.cs new file mode 100644 index 0000000000..7e7be0143f --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersProTemplate.cs @@ -0,0 +1,16 @@ +namespace Volo.Abp.Cli.ProjectBuilding.Templates.App; + +public class AppNoLayersProTemplate : AppNoLayersTemplateBase +{ + /// + /// "app-nolayers-pro". + /// + public const string TemplateName = "app-nolayers-pro"; + + public AppNoLayersProTemplate() + : base(TemplateName) + { + //TODO: Change URL + //DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/Application"; + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplate.cs index c218b2668b..24119c43f2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplate.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplate.cs @@ -1,11 +1,6 @@ -using System; -using System.Collections.Generic; -using Volo.Abp.Cli.ProjectBuilding.Building; -using Volo.Abp.Cli.ProjectBuilding.Building.Steps; +namespace Volo.Abp.Cli.ProjectBuilding.Templates.App; -namespace Volo.Abp.Cli.ProjectBuilding.Templates.App; - -public class AppNoLayersTemplate : AppTemplateBase +public class AppNoLayersTemplate : AppNoLayersTemplateBase { /// /// "app-nolayers". @@ -16,86 +11,6 @@ public class AppNoLayersTemplate : AppTemplateBase : base(TemplateName) { //TODO: Change URL - DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/Application"; - } - - public override IEnumerable GetCustomSteps(ProjectBuildContext context) - { - var steps = new List(); - - switch (context.BuildArgs.DatabaseProvider) - { - case DatabaseProvider.NotSpecified: - case DatabaseProvider.EntityFrameworkCore: - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc.Mongo")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host.Mongo")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo")); - break; - case DatabaseProvider.MongoDb: - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); - - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc.Mongo", "MyCompanyName.MyProjectName.Mvc")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host.Mongo", "MyCompanyName.MyProjectName.Host")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo", "MyCompanyName.MyProjectName.Blazor.Server")); - break; - } - - switch (context.BuildArgs.UiFramework) - { - case UiFramework.Angular: - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); - break; - - case UiFramework.None: - steps.Add(new RemoveFolderStep("/angular")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); - break; - - case UiFramework.BlazorServer: - steps.Add(new RemoveFolderStep("/angular")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName")); - break; - - case UiFramework.NotSpecified: - case UiFramework.Mvc: - steps.Add(new RemoveFolderStep("/angular")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); - steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName")); - break; - - case UiFramework.Blazor: - throw new AbpException("app-nolayers doesn't support blazor wasm."); - break; - } - - //ConfigureTenantSchema(context, steps); - //SwitchDatabaseProvider(context, steps); - //DeleteUnrelatedProjects(context, steps); - steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName/Migrations")); - //RemoveMigrations(context, steps); - //ConfigureTieredArchitecture(context, steps); - //ConfigurePublicWebSite(context, steps); - //RemoveUnnecessaryPorts(context, steps); - RandomizeSslPorts(context, steps); - RandomizeStringEncryption(context, steps); - UpdateNuGetConfig(context, steps); - ChangeConnectionString(context, steps); - //CleanupFolderHierarchy(context, steps); - - if (context.BuildArgs.UiFramework != UiFramework.Angular) - { - steps.Add(new MoveFolderStep("/aspnet-core/", "/")); - } - - return steps; + //DocumentUrl = CliConsts.DocsLink + "/en/abp/latest/Startup-Templates/Application"; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs new file mode 100644 index 0000000000..b9714d9408 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs @@ -0,0 +1,94 @@ +using System.Collections.Generic; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.App; + +public abstract class AppNoLayersTemplateBase : AppTemplateBase +{ + protected AppNoLayersTemplateBase(string templateName) + : base(templateName) + { + + } + + public override IEnumerable GetCustomSteps(ProjectBuildContext context) + { + var steps = new List(); + + switch (context.BuildArgs.DatabaseProvider) + { + case DatabaseProvider.NotSpecified: + case DatabaseProvider.EntityFrameworkCore: + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc.Mongo")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host.Mongo")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo")); + break; + case DatabaseProvider.MongoDb: + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc.Mongo", "MyCompanyName.MyProjectName.Mvc")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host.Mongo", "MyCompanyName.MyProjectName.Host")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo", "MyCompanyName.MyProjectName.Blazor.Server")); + break; + } + + switch (context.BuildArgs.UiFramework) + { + case UiFramework.Angular: + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); + break; + + case UiFramework.None: + steps.Add(new RemoveFolderStep("/angular")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); + break; + + case UiFramework.BlazorServer: + steps.Add(new RemoveFolderStep("/angular")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName")); + break; + + case UiFramework.NotSpecified: + case UiFramework.Mvc: + steps.Add(new RemoveFolderStep("/angular")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName")); + break; + + case UiFramework.Blazor: + throw new AbpException("app-nolayers doesn't support blazor wasm."); + break; + } + + //ConfigureTenantSchema(context, steps); + //SwitchDatabaseProvider(context, steps); + //DeleteUnrelatedProjects(context, steps); + steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName/Migrations")); + //RemoveMigrations(context, steps); + //ConfigureTieredArchitecture(context, steps); + //ConfigurePublicWebSite(context, steps); + //RemoveUnnecessaryPorts(context, steps); + RandomizeSslPorts(context, steps); + RandomizeStringEncryption(context, steps); + UpdateNuGetConfig(context, steps); + ChangeConnectionString(context, steps); + //CleanupFolderHierarchy(context, steps); + + if (context.BuildArgs.UiFramework != UiFramework.Angular) + { + steps.Add(new MoveFolderStep("/aspnet-core/", "/")); + } + + return steps; + } +}