diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
index b44c8833bd..7224dab07e 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
@@ -153,6 +153,7 @@
"Code": "Code",
"Result": "Result",
"SeeTheDocumentForMoreInformation": "See the {0} document for more information",
- "IndexPageHeroSection": "open sourceWeb Application
Framework for asp.net core"
+ "IndexPageHeroSection": "open sourceWeb Application
Framework for asp.net core",
+ "UiFramework": "UI Framework"
}
}
\ No newline at end of file
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 33c86bb367..df8c7eea2c 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
@@ -47,7 +47,8 @@ namespace Volo.Abp.Cli.Commands
SolutionName.Parse(commandLineArgs.Target),
commandLineArgs.Options.GetOrNull(Options.Template.Short, Options.Template.Long),
commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long),
- GetDatabaseProviderOrNull(commandLineArgs),
+ GetDatabaseProvider(commandLineArgs),
+ GetUiFramework(commandLineArgs),
commandLineArgs.Options
)
);
@@ -94,6 +95,7 @@ namespace Volo.Abp.Cli.Commands
{
StreamUtils.Copy(zipInputStream, streamWriter, buffer);
}
+
zipEntry = zipInputStream.GetNextEntry();
}
}
@@ -138,7 +140,7 @@ namespace Volo.Abp.Cli.Commands
return "Generates a new solution based on the ABP startup templates.";
}
- protected virtual DatabaseProvider GetDatabaseProviderOrNull(CommandLineArgs commandLineArgs)
+ protected virtual DatabaseProvider GetDatabaseProvider(CommandLineArgs commandLineArgs)
{
var optionValue = commandLineArgs.Options.GetOrNull(Options.DatabaseProvider.Short, Options.DatabaseProvider.Long);
switch (optionValue)
@@ -152,6 +154,20 @@ namespace Volo.Abp.Cli.Commands
}
}
+ private UiFramework GetUiFramework(CommandLineArgs commandLineArgs)
+ {
+ var optionValue = commandLineArgs.Options.GetOrNull(Options.UiFramework.Short, Options.UiFramework.Long);
+ switch (optionValue)
+ {
+ case "mvc":
+ return UiFramework.Mvc;
+ case "angular":
+ return UiFramework.Angular;
+ default:
+ return UiFramework.NotSpecified;
+ }
+ }
+
public static class Options
{
public static class Template
@@ -177,6 +193,12 @@ namespace Volo.Abp.Cli.Commands
public const string Short = "v";
public const string Long = "version";
}
+
+ public static class UiFramework
+ {
+ public const string Short = "u";
+ public const string Long = "ui";
+ }
}
}
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs
index 1fd53705eb..01783dfc45 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs
@@ -7,7 +7,6 @@ using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Cli.Http;
-using Volo.Abp.Cli.ProjectBuilding.Building;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http;
using Volo.Abp.IO;
@@ -40,8 +39,6 @@ namespace Volo.Abp.Cli.ProjectBuilding
public async Task GetAsync(
string name,
- DatabaseProvider databaseProvider,
- string projectName,
string version = null)
{
if (version == null)
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProvider.cs
index f7ca31e168..852c63057a 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProvider.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProvider.cs
@@ -6,18 +6,4 @@
EntityFrameworkCore = 1,
MongoDb = 2
}
-
- public static class DatabaseProviderExtensions
- {
- public static string ToProviderName(this DatabaseProvider databaseProvider)
- {
- switch (databaseProvider)
- {
- case DatabaseProvider.EntityFrameworkCore: return "ef";
- case DatabaseProvider.MongoDb: return "mongodb";
- case DatabaseProvider.NotSpecified: return "NotSpecified";
- default: return "NotSpecified";
- }
- }
- }
}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProviderExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProviderExtensions.cs
new file mode 100644
index 0000000000..61e4805d00
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseProviderExtensions.cs
@@ -0,0 +1,16 @@
+namespace Volo.Abp.Cli.ProjectBuilding.Building
+{
+ public static class DatabaseProviderExtensions
+ {
+ public static string ToProviderName(this DatabaseProvider databaseProvider)
+ {
+ switch (databaseProvider)
+ {
+ case DatabaseProvider.EntityFrameworkCore: return "ef";
+ case DatabaseProvider.MongoDb: return "mongodb";
+ case DatabaseProvider.NotSpecified: return "NotSpecified";
+ default: return "NotSpecified";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipeline.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipeline.cs
index a6e5e2e56f..91d83b086a 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipeline.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipeline.cs
@@ -4,18 +4,21 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
{
public class ProjectBuildPipeline
{
+ public ProjectBuildContext Context { get; }
+
public List Steps { get; }
- public ProjectBuildPipeline()
+ public ProjectBuildPipeline(ProjectBuildContext context)
{
+ Context = context;
Steps = new List();
}
- public void Execute(ProjectBuildContext context)
+ public void Execute()
{
foreach (var step in Steps)
{
- step.Execute(context);
+ step.Execute(Context);
}
}
}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs
index 6ed0b7133e..5f763b15f9 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildPipelineBuilder.cs
@@ -6,7 +6,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
{
public static ProjectBuildPipeline Build(ProjectBuildContext context)
{
- var pipeline = new ProjectBuildPipeline();
+ var pipeline = new ProjectBuildPipeline(context);
pipeline.Steps.Add(new FileEntryListReadStep());
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFolderStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFolderStep.cs
new file mode 100644
index 0000000000..a36cde6f3f
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFolderStep.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Linq;
+
+namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
+{
+ public class MoveFolderStep : ProjectBuildPipelineStep
+ {
+ private readonly string _sourceFolder;
+ private readonly string _targetFolder;
+
+ public MoveFolderStep(string sourceFolder, string targetFolder)
+ {
+ _sourceFolder = sourceFolder;
+ _targetFolder = targetFolder;
+ }
+
+ public override void Execute(ProjectBuildContext context)
+ {
+ var fileEntries = context.Files.Where(file => file.Name.StartsWith(_sourceFolder)).ToList();
+ foreach (var fileEntry in fileEntries)
+ {
+ var newName = fileEntry.Name.ReplaceFirst(_sourceFolder, _targetFolder);
+
+ if (newName.IsIn("", "/"))
+ {
+ context.Files.Remove(fileEntry);
+ continue;
+ }
+
+ fileEntry.SetName(newName);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFolderStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFolderStep.cs
new file mode 100644
index 0000000000..ddf7010dd7
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFolderStep.cs
@@ -0,0 +1,28 @@
+using System.Linq;
+
+namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
+{
+ public class RemoveFolderStep : ProjectBuildPipelineStep
+ {
+ private readonly string _folderPath;
+
+ public RemoveFolderStep(string folderPath)
+ {
+ _folderPath = folderPath;
+ }
+
+ public override void Execute(ProjectBuildContext context)
+ {
+ //Remove the folder content
+ var folderPathWithSlash = _folderPath + "/";
+ context.Files.RemoveAll(file => file.Name.StartsWith(folderPathWithSlash));
+
+ //Remove the folder
+ var folder = context.Files.FirstOrDefault(file => file.Name == _folderPath);
+ if (folder != null)
+ {
+ context.Files.Remove(folder);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs
index fe1de0d72d..497a38c4b1 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs
@@ -24,9 +24,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
public override void Execute(ProjectBuildContext context)
{
- var projectFolderWithSlash = _projectFolderPath + "/";
- context.Files.RemoveAll(file => file.Name.StartsWith(projectFolderWithSlash));
- context.Files.RemoveAll(file => file.Name == _projectFolderPath);
+ new RemoveFolderStep(_projectFolderPath).Execute(context);
var solutionFile = context.GetFile(_solutionFilePath);
solutionFile.NormalizeLineEndings();
solutionFile.SetLines(RemoveProject(solutionFile.GetLines().ToList()));
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs
index 3809646ecc..137674dcc6 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs
@@ -11,15 +11,19 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
public DatabaseProvider DefaultDatabaseProvider { get; }
+ public UiFramework DefaultUiFramework { get; }
+
[CanBeNull]
public string DocumentUrl { get; set; }
protected TemplateInfo(
[NotNull] string name,
- DatabaseProvider defaultDatabaseProvider = DatabaseProvider.NotSpecified)
+ DatabaseProvider defaultDatabaseProvider = DatabaseProvider.NotSpecified,
+ UiFramework defaultUiFramework = UiFramework.NotSpecified)
{
Name = Check.NotNullOrWhiteSpace(name, nameof(name));
- DefaultDatabaseProvider = Check.NotNull(defaultDatabaseProvider, nameof(defaultDatabaseProvider));
+ DefaultDatabaseProvider = defaultDatabaseProvider;
+ DefaultUiFramework = defaultUiFramework;
}
public virtual IEnumerable GetCustomSteps(ProjectBuildContext context)
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs
new file mode 100644
index 0000000000..eab34d141b
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFramework.cs
@@ -0,0 +1,9 @@
+namespace Volo.Abp.Cli.ProjectBuilding.Building
+{
+ public enum UiFramework
+ {
+ NotSpecified = 0,
+ Mvc = 1,
+ Angular = 2
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs
new file mode 100644
index 0000000000..09eb0c474c
--- /dev/null
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/UiFrameworkExtensions.cs
@@ -0,0 +1,16 @@
+namespace Volo.Abp.Cli.ProjectBuilding.Building
+{
+ public static class UiFrameworkExtensions
+ {
+ public static string ToFrameworkName(this UiFramework uiFramework)
+ {
+ switch (uiFramework)
+ {
+ case UiFramework.Mvc: return "mvc";
+ case UiFramework.Angular: return "angular";
+ case UiFramework.NotSpecified: return "NotSpecified";
+ default: return "NotSpecified";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ITemplateStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ITemplateStore.cs
index 064c4eb81b..728d4d4a51 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ITemplateStore.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ITemplateStore.cs
@@ -1,6 +1,5 @@
using System.Threading.Tasks;
using JetBrains.Annotations;
-using Volo.Abp.Cli.ProjectBuilding.Building;
namespace Volo.Abp.Cli.ProjectBuilding
{
@@ -8,8 +7,6 @@ namespace Volo.Abp.Cli.ProjectBuilding
{
Task GetAsync(
string name,
- DatabaseProvider databaseProvider,
- string projectName,
[CanBeNull] string version = null
);
}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs
index 42307d55cc..7f1533459d 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs
@@ -17,6 +17,8 @@ namespace Volo.Abp.Cli.ProjectBuilding
public DatabaseProvider DatabaseProvider { get; set; }
+ public UiFramework UiFramework { get; set; }
+
[NotNull]
public Dictionary ExtraProperties { get; set; }
@@ -25,12 +27,14 @@ namespace Volo.Abp.Cli.ProjectBuilding
[CanBeNull] string templateName = null,
[CanBeNull] string version = null,
DatabaseProvider databaseProvider = DatabaseProvider.NotSpecified,
+ UiFramework uiFramework = UiFramework.NotSpecified,
Dictionary extraProperties = null)
{
SolutionName = Check.NotNull(solutionName, nameof(solutionName));
TemplateName = templateName;
Version = version;
DatabaseProvider = databaseProvider;
+ UiFramework = uiFramework;
ExtraProperties = extraProperties ?? new Dictionary();
}
}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs
index 9251b98ecb..de485b7c06 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuilder.cs
@@ -41,20 +41,10 @@ namespace Volo.Abp.Cli.ProjectBuilding
{
var templateInfo = GetTemplateInfo(args);
- args.TemplateName = templateInfo.Name;
-
- if (args.DatabaseProvider == DatabaseProvider.NotSpecified)
- {
- if (templateInfo.DefaultDatabaseProvider != DatabaseProvider.NotSpecified)
- {
- args.DatabaseProvider = templateInfo.DefaultDatabaseProvider;
- }
- }
+ NormalizeArgs(args, templateInfo);
var templateFile = await TemplateStore.GetAsync(
args.TemplateName,
- args.DatabaseProvider,
- args.SolutionName.FullName,
args.Version
);
@@ -64,7 +54,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
args
);
- ProjectBuildPipelineBuilder.Build(context).Execute(context);
+ ProjectBuildPipelineBuilder.Build(context).Execute();
if (!templateInfo.DocumentUrl.IsNullOrEmpty())
{
@@ -94,6 +84,30 @@ namespace Volo.Abp.Cli.ProjectBuilding
return new ProjectBuildResult(context.Result.ZipContent, args.SolutionName.ProjectName);
}
+ private static void NormalizeArgs(ProjectBuildArgs args, TemplateInfo templateInfo)
+ {
+ if (args.TemplateName.IsNullOrEmpty())
+ {
+ args.TemplateName = templateInfo.Name;
+ }
+
+ if (args.DatabaseProvider == DatabaseProvider.NotSpecified)
+ {
+ if (templateInfo.DefaultDatabaseProvider != DatabaseProvider.NotSpecified)
+ {
+ args.DatabaseProvider = templateInfo.DefaultDatabaseProvider;
+ }
+ }
+
+ if (args.UiFramework == UiFramework.NotSpecified)
+ {
+ if (templateInfo.DefaultUiFramework != UiFramework.NotSpecified)
+ {
+ args.UiFramework = templateInfo.DefaultUiFramework;
+ }
+ }
+ }
+
private TemplateInfo GetTemplateInfo(ProjectBuildArgs args)
{
if (args.TemplateName.IsNullOrWhiteSpace())
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplate.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplate.cs
index d146e16ec7..ec7146c832 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplate.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplate.cs
@@ -12,7 +12,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
public const string TemplateName = "app";
public AppTemplate()
- : base(TemplateName, DatabaseProvider.EntityFrameworkCore)
+ : base(TemplateName, DatabaseProvider.EntityFrameworkCore, UiFramework.Mvc)
{
DocumentUrl = "https://docs.abp.io/en/abp/latest/Startup-Templates/Application";
}
@@ -24,11 +24,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
SwitchDatabaseProvider(context, steps);
DeleteUnrelatedProjects(context, steps);
RandomizeSslPorts(context, steps);
+ CleanupFolderHierarchy(context, steps);
return steps;
}
- private static void SwitchDatabaseProvider(ProjectBuildContext context, List steps)
+ private static void SwitchDatabaseProvider(ProjectBuildContext context, List steps)
{
if (context.BuildArgs.DatabaseProvider == DatabaseProvider.MongoDb)
{
@@ -51,30 +52,56 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
private void DeleteUnrelatedProjects(ProjectBuildContext context, List steps)
{
- if (context.BuildArgs.ExtraProperties.ContainsKey("tiered"))
+ if (context.BuildArgs.UiFramework == UiFramework.Mvc)
+ {
+ if (context.BuildArgs.ExtraProperties.ContainsKey("tiered"))
+ {
+ steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web"));
+ steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests"));
+ steps.Add(new AppTemplateProjectRenameStep("MyCompanyName.MyProjectName.Web.Host", "MyCompanyName.MyProjectName.Web"));
+ }
+ else
+ {
+ 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 AppTemplateChangeConsoleTestClientPortSettingsStep());
+ }
+ }
+
+ if (context.BuildArgs.UiFramework != UiFramework.Mvc)
{
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web"));
+ steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Host"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests"));
- steps.Add(new AppTemplateProjectRenameStep("MyCompanyName.MyProjectName.Web.Host", "MyCompanyName.MyProjectName.Web"));
}
- else
+
+ if (context.BuildArgs.UiFramework != UiFramework.Angular)
{
- 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 AppTemplateChangeConsoleTestClientPortSettingsStep());
+ steps.Add(new RemoveFolderStep("/angular"));
}
}
private static void RandomizeSslPorts(ProjectBuildContext context, List steps)
{
- steps.Add(new TemplateRandomSslPortStep(new List
+ 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)
+ {
+ if (context.BuildArgs.UiFramework == UiFramework.Mvc)
{
- "https://localhost:44300",
- "https://localhost:44301",
- "https://localhost:44302",
- "https://localhost:44303"
- }));
+ steps.Add(new MoveFolderStep("/aspnet-core/", "/"));
+ }
}
}
}
\ No newline at end of file