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/", "/"));
+ }
+ }
+}