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 53f8c566cd..5a287d11bf 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 @@ -23,6 +23,8 @@ namespace Volo.Abp.Cli.ProjectBuilding return new AppProTemplate(); case ModuleTemplate.TemplateName: return new ModuleTemplate(); + case ModuleProTemplate.TemplateName: + return new ModuleProTemplate(); default: throw new Exception("There is no template found with given name: " + name); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleProTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleProTemplate.cs new file mode 100644 index 0000000000..8cfe44c38b --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleProTemplate.cs @@ -0,0 +1,19 @@ +using Volo.Abp.Cli.ProjectBuilding.Templates.Module; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule +{ + public class ModuleProTemplate : ModuleTemplateBase + { + /// + /// "module". + /// + public const string TemplateName = "module-pro"; + + public ModuleProTemplate() + : base(TemplateName) + { + //TODO: uncomment next line after document is ready + //DocumentUrl = "https://docs.abp.io/en/commercial/latest/Startup-Templates/Module"; + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs index b3eab61ac9..e6e2045301 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplate.cs @@ -1,10 +1,8 @@ -using System.Collections.Generic; -using Volo.Abp.Cli.ProjectBuilding.Building; -using Volo.Abp.Cli.ProjectBuilding.Building.Steps; +using Volo.Abp.Cli.ProjectBuilding.Templates.Module; namespace Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule { - public class ModuleTemplate : TemplateInfo + public class ModuleTemplate : ModuleTemplateBase { /// /// "module". @@ -16,52 +14,5 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule { DocumentUrl = "https://docs.abp.io/en/abp/latest/Startup-Templates/Module"; } - - public override IEnumerable GetCustomSteps(ProjectBuildContext context) - { - var steps = new List(); - - DeleteUnrelatedProjects(context, steps); - RandomizeSslPorts(context, steps); - CleanupFolderHierarchy(context, steps); - - return steps; - } - - private void DeleteUnrelatedProjects(ProjectBuildContext context, List steps) - { - if (context.BuildArgs.ExtraProperties.ContainsKey("no-ui")) - { - steps.Add(new RemoveProjectFromSolutionStep( - "MyCompanyName.MyProjectName.Web" - )); - - steps.Add(new RemoveProjectFromSolutionStep( - "MyCompanyName.MyProjectName.Web.Host", - projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host" - )); - - steps.Add(new RemoveProjectFromSolutionStep( - "MyCompanyName.MyProjectName.Web.Unified", - projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified" - )); - } - } - - private void RandomizeSslPorts(ProjectBuildContext context, List steps) - { - steps.Add(new TemplateRandomSslPortStep(new List - { - "https://localhost:44300", - "https://localhost:44301", - "https://localhost:44302", - "https://localhost:44303" - })); - } - - private void CleanupFolderHierarchy(ProjectBuildContext context, List steps) - { - steps.Add(new MoveFolderStep("/aspnet-core/", "/")); - } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs new file mode 100644 index 0000000000..2d308d9219 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Text; +using JetBrains.Annotations; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.Module +{ + public abstract class ModuleTemplateBase : TemplateInfo + { + protected ModuleTemplateBase([NotNull] string name) + : base(name) + { + } + + public override IEnumerable GetCustomSteps(ProjectBuildContext context) + { + var steps = new List(); + + DeleteUnrelatedProjects(context, steps); + RandomizeSslPorts(context, steps); + CleanupFolderHierarchy(context, steps); + + return steps; + } + + private void DeleteUnrelatedProjects(ProjectBuildContext context, List steps) + { + if (context.BuildArgs.ExtraProperties.ContainsKey("no-ui")) + { + steps.Add(new RemoveProjectFromSolutionStep( + "MyCompanyName.MyProjectName.Web" + )); + + steps.Add(new RemoveProjectFromSolutionStep( + "MyCompanyName.MyProjectName.Web.Host", + projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host" + )); + + steps.Add(new RemoveProjectFromSolutionStep( + "MyCompanyName.MyProjectName.Web.Unified", + projectFolderPath: "/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified" + )); + } + } + + private void RandomizeSslPorts(ProjectBuildContext context, List steps) + { + steps.Add(new TemplateRandomSslPortStep(new List + { + "https://localhost:44300", + "https://localhost:44301", + "https://localhost:44302", + "https://localhost:44303" + })); + } + + private void CleanupFolderHierarchy(ProjectBuildContext context, List steps) + { + steps.Add(new MoveFolderStep("/aspnet-core/", "/")); + } + } +}