From 82a571b240a8f0d5b2a8c7df81351bf10483625a Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 25 Jan 2023 11:14:45 +0300 Subject: [PATCH 01/10] Cli: Delete/Move blazor wasm projects in nolayers template --- .../Building/Steps/MoveProjectStep.cs | 40 ++++++++++++++ .../Templates/App/AppNoLayersTemplateBase.cs | 54 +++++++++++++++++-- 2 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs new file mode 100644 index 0000000000..f8302f1f5b --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs @@ -0,0 +1,40 @@ +using System; +using System.Linq; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class MoveProjectStep : ProjectBuildPipelineStep +{ + private readonly string _pathInSlnFile; + private readonly string _newPathInSlnFile; + private readonly string _projectFolder; + private readonly string _newProjectFolder; + + public MoveProjectStep(string projectFolder, string newProjectFolder, string pathInSlnFile, string newPathInSlnFile) + { + _pathInSlnFile = pathInSlnFile; + _newPathInSlnFile = newPathInSlnFile; + _projectFolder = projectFolder.EnsureEndsWith('/'); + _newProjectFolder = newProjectFolder.EnsureEndsWith('/'); + } + + public override void Execute(ProjectBuildContext context) + { + var fileEntries = context.Files.Where(file => file.Name.StartsWith(_projectFolder)).ToList(); + foreach (var fileEntry in fileEntries) + { + var newName = fileEntry.Name.ReplaceFirst(_projectFolder, _newProjectFolder); + + if (newName.IsIn("", "/")) + { + context.Files.Remove(fileEntry); + continue; + } + + fileEntry.SetName(newName); + } + + var slnFile = context.Files.First(file => file.Name.EndsWith(".sln")); + slnFile.SetContent(slnFile.Content.Replace($"\"{_pathInSlnFile}\"", $"\"{_newPathInSlnFile}\"")); + } +} 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 index abf1e515df..9bd9690554 100644 --- 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 @@ -29,15 +29,19 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase 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")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo", projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/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 RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); + steps.Add(new MoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo", "/MyCompanyName.MyProjectName.Blazor.WebAssembly/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")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo", "MyCompanyName.MyProjectName.Blazor.WebAssembly.Server")); break; } @@ -49,6 +53,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); + RemoveBlazorWasmProjects(steps); break; case UiFramework.None: @@ -56,13 +61,43 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName")); + RemoveBlazorWasmProjects(steps); break; + case UiFramework.Blazor: + steps.Add(new RemoveFolderStep("/angular")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); + + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", + "MyCompanyName.MyProjectName.Host")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client", + "MyCompanyName.MyProjectName.Blazor")); + steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", + "MyCompanyName.MyProjectName.Contracts")); + + steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client", + "/MyCompanyName.MyProjectName.Blazor", + "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Client\\MyCompanyName.MyProjectName.Blazor.csproj", + "MyCompanyName.MyProjectName.Blazor\\MyCompanyName.MyProjectName.Blazor.csproj")); + steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server", + "/MyCompanyName.MyProjectName.Host", + "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Server\\MyCompanyName.MyProjectName.Host.csproj", + "MyCompanyName.MyProjectName.Host\\MyCompanyName.MyProjectName.Host.csproj")); + steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared", + "/MyCompanyName.MyProjectName.Contracts", + "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Shared\\MyCompanyName.MyProjectName.Contracts.csproj", + "MyCompanyName.MyProjectName.Contracts\\MyCompanyName.MyProjectName.Contracts.csproj")); + steps.Add(new RemoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly")); + 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")); + RemoveBlazorWasmProjects(steps); break; case UiFramework.NotSpecified: @@ -71,11 +106,11 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName")); + RemoveBlazorWasmProjects(steps); break; - - case UiFramework.Blazor: - throw new AbpException("app-nolayers doesn't support blazor wasm."); - break; + + default: + throw new AbpException("Unkown UI framework: " + context.BuildArgs.UiFramework); } steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName/Migrations")); @@ -94,6 +129,17 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase return steps; } + private static void RemoveBlazorWasmProjects(List steps) + { + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", + projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client", + projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", + projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared")); + steps.Add(new RemoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/")); + } + protected void ConfigureDockerFiles(ProjectBuildContext context, List steps) { switch (context.BuildArgs.UiFramework) From 4bdf4e1174aa55d7783465a097db6685ce36e8a2 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 25 Jan 2023 13:25:04 +0300 Subject: [PATCH 02/10] Update AppNoLayersTemplateBase.cs --- .../Templates/App/AppNoLayersTemplateBase.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) 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 index 9bd9690554..80fce48346 100644 --- 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 @@ -77,19 +77,19 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", "MyCompanyName.MyProjectName.Contracts")); - steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client", - "/MyCompanyName.MyProjectName.Blazor", + steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client", + "/aspnet-core/MyCompanyName.MyProjectName.Blazor", "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Client\\MyCompanyName.MyProjectName.Blazor.csproj", "MyCompanyName.MyProjectName.Blazor\\MyCompanyName.MyProjectName.Blazor.csproj")); - steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server", - "/MyCompanyName.MyProjectName.Host", + steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server", + "/aspnet-core/MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Server\\MyCompanyName.MyProjectName.Host.csproj", "MyCompanyName.MyProjectName.Host\\MyCompanyName.MyProjectName.Host.csproj")); - steps.Add(new MoveProjectStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared", - "/MyCompanyName.MyProjectName.Contracts", + steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared", + "/aspnet-core/MyCompanyName.MyProjectName.Contracts", "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Shared\\MyCompanyName.MyProjectName.Contracts.csproj", "MyCompanyName.MyProjectName.Contracts\\MyCompanyName.MyProjectName.Contracts.csproj")); - steps.Add(new RemoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly")); + steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); break; case UiFramework.BlazorServer: @@ -132,12 +132,12 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase private static void RemoveBlazorWasmProjects(List steps) { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", - projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); + projectFolderPath: "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client", - projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client")); + projectFolderPath: "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", - projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared")); - steps.Add(new RemoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/")); + projectFolderPath: "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared")); + steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); } protected void ConfigureDockerFiles(ProjectBuildContext context, List steps) From 80310028cd14e35f73d1cda176f5994ddc3cccc7 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 25 Jan 2023 14:35:42 +0300 Subject: [PATCH 03/10] Refactor & enhancements --- .../Steps/AppNoLayersMoveProjectsStep.cs | 57 +++++++++++++++++++ .../Building/Steps/MoveProjectStep.cs | 40 ------------- .../Templates/App/AppNoLayersTemplateBase.cs | 19 ++----- .../Templates/App/AppTemplateBase.cs | 3 +- 4 files changed, 63 insertions(+), 56 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs delete mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs new file mode 100644 index 0000000000..29cdc07ade --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class AppNoLayersMoveProjectsStep : ProjectBuildPipelineStep +{ + public override void Execute(ProjectBuildContext context) + { + MoveFiles(context, "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client", + "/aspnet-core/MyCompanyName.MyProjectName.Blazor"); + MoveFiles(context, "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server", + "/aspnet-core/MyCompanyName.MyProjectName.Host"); + MoveFiles(context, "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared", + "/aspnet-core/MyCompanyName.MyProjectName.Contracts"); + + ModifySolutionFile(context, "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Client\\MyCompanyName.MyProjectName.Blazor.csproj", + "MyCompanyName.MyProjectName.Blazor\\MyCompanyName.MyProjectName.Blazor.csproj"); + ModifySolutionFile(context, "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Server\\MyCompanyName.MyProjectName.Host.csproj", + "MyCompanyName.MyProjectName.Host\\MyCompanyName.MyProjectName.Host.csproj"); + ModifySolutionFile(context, "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Server.Mongo\\MyCompanyName.MyProjectName.Host.csproj", + "MyCompanyName.MyProjectName.Host\\MyCompanyName.MyProjectName.Host.csproj"); + ModifySolutionFile(context, "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Shared\\MyCompanyName.MyProjectName.Contracts.csproj", + "MyCompanyName.MyProjectName.Contracts\\MyCompanyName.MyProjectName.Contracts.csproj"); + + ModifyProjectFiles(context, "..\\Shared\\MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared.csproj", + "..\\MyCompanyName.MyProjectName.Contracts\\MyCompanyName.MyProjectName.Contracts.csproj"); + + ModifyProjectFiles(context, "..\\Client\\MyCompanyName.MyProjectName.Blazor.WebAssembly.Client.csproj", + "..\\MyCompanyName.MyProjectName.Blazor\\MyCompanyName.MyProjectName.Blazor.csproj"); + } + + public void MoveFiles(ProjectBuildContext context, string projectFolder, string newProjectFolder) + { + var fileEntries = context.Files.Where(file => file.Name.StartsWith(projectFolder)).ToList(); + foreach (var fileEntry in fileEntries) + { + fileEntry.SetName(fileEntry.Name.ReplaceFirst(projectFolder, newProjectFolder)); + } + } + + public void ModifySolutionFile(ProjectBuildContext context, string pathInSlnFile, string newPathInSlnFile) + { + var slnFile = context.Files.First(file => file.Name.EndsWith(".sln")); + slnFile.SetContent(slnFile.Content.Replace($"\"{pathInSlnFile}\"", $"\"{newPathInSlnFile}\"")); + } + + public void ModifyProjectFiles(ProjectBuildContext context, string oldContent, string newContent) + { + var projectFiles = context.Files.Where(file => file.Name.EndsWith(".csproj")); + + foreach (var projectFile in projectFiles) + { + projectFile.SetContent(projectFile.Content.Replace(oldContent,newContent)); + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs deleted file mode 100644 index f8302f1f5b..0000000000 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveProjectStep.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Linq; - -namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; - -public class MoveProjectStep : ProjectBuildPipelineStep -{ - private readonly string _pathInSlnFile; - private readonly string _newPathInSlnFile; - private readonly string _projectFolder; - private readonly string _newProjectFolder; - - public MoveProjectStep(string projectFolder, string newProjectFolder, string pathInSlnFile, string newPathInSlnFile) - { - _pathInSlnFile = pathInSlnFile; - _newPathInSlnFile = newPathInSlnFile; - _projectFolder = projectFolder.EnsureEndsWith('/'); - _newProjectFolder = newProjectFolder.EnsureEndsWith('/'); - } - - public override void Execute(ProjectBuildContext context) - { - var fileEntries = context.Files.Where(file => file.Name.StartsWith(_projectFolder)).ToList(); - foreach (var fileEntry in fileEntries) - { - var newName = fileEntry.Name.ReplaceFirst(_projectFolder, _newProjectFolder); - - if (newName.IsIn("", "/")) - { - context.Files.Remove(fileEntry); - continue; - } - - fileEntry.SetName(newName); - } - - var slnFile = context.Files.First(file => file.Name.EndsWith(".sln")); - slnFile.SetContent(slnFile.Content.Replace($"\"{_pathInSlnFile}\"", $"\"{_newPathInSlnFile}\"")); - } -} 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 index 80fce48346..ea2f829614 100644 --- 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 @@ -29,15 +29,15 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase 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")); - steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo", projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo", projectFolderPath: "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/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 RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", projectFolderPath: "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); + steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", projectFolderPath: "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); - steps.Add(new MoveFolderStep("/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo", "/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server")); + steps.Add(new MoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo", "/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/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")); @@ -77,18 +77,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", "MyCompanyName.MyProjectName.Contracts")); - steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client", - "/aspnet-core/MyCompanyName.MyProjectName.Blazor", - "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Client\\MyCompanyName.MyProjectName.Blazor.csproj", - "MyCompanyName.MyProjectName.Blazor\\MyCompanyName.MyProjectName.Blazor.csproj")); - steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server", - "/aspnet-core/MyCompanyName.MyProjectName.Host", - "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Server\\MyCompanyName.MyProjectName.Host.csproj", - "MyCompanyName.MyProjectName.Host\\MyCompanyName.MyProjectName.Host.csproj")); - steps.Add(new MoveProjectStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Shared", - "/aspnet-core/MyCompanyName.MyProjectName.Contracts", - "MyCompanyName.MyProjectName.Blazor.WebAssembly\\Shared\\MyCompanyName.MyProjectName.Contracts.csproj", - "MyCompanyName.MyProjectName.Contracts\\MyCompanyName.MyProjectName.Contracts.csproj")); + steps.Add(new AppNoLayersMoveProjectsStep()); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); break; 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 10063b84e5..4958ad802c 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 @@ -584,7 +584,8 @@ public abstract class AppTemplateBase : TemplateInfo "https://localhost:44306", "https://localhost:44307", "https://localhost:44308", - "https://localhost:44309" + "https://localhost:44309", + "https://localhost:44310" } ) ); From f87e7c117537f592cce38923cc858aea9969d6f9 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 25 Jan 2023 15:47:43 +0300 Subject: [PATCH 04/10] Update nolayers blaazor wasm ports --- .../Client/Properties/launchSettings.json | 4 ++-- .../Client/wwwroot/appsettings.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json index c3778702ac..29896573cd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json @@ -3,7 +3,7 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44300", + "applicationUrl": "https://localhost:44310", "sslPort": 44300 } }, @@ -13,7 +13,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:44300", + "applicationUrl": "https://localhost:44310", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json index dfc96e72ac..6354831d3c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44300" + "SelfUrl": "https://localhost:44310" }, "AuthServer": { "Authority": "https://localhost:44300", From 11e028f405294cbbe8721ee401205e6d69dbd282 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 26 Jan 2023 09:44:47 +0300 Subject: [PATCH 05/10] Revert "Update nolayers blaazor wasm ports" This reverts commit f87e7c117537f592cce38923cc858aea9969d6f9. --- .../Client/Properties/launchSettings.json | 4 ++-- .../Client/wwwroot/appsettings.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json index 29896573cd..c3778702ac 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/Properties/launchSettings.json @@ -3,7 +3,7 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44310", + "applicationUrl": "https://localhost:44300", "sslPort": 44300 } }, @@ -13,7 +13,7 @@ "dotnetRunMessages": true, "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:44310", + "applicationUrl": "https://localhost:44300", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json index 6354831d3c..dfc96e72ac 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Client/wwwroot/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44310" + "SelfUrl": "https://localhost:44300" }, "AuthServer": { "Authority": "https://localhost:44300", From c469f2e3ab39ff8e6b96ccc6ebf391c68d2b02ec Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 26 Jan 2023 13:59:43 +0300 Subject: [PATCH 06/10] Run abp bundle for nolayers blazor --- .../Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 16ae776ac9..b2653ece5e 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 @@ -417,7 +417,8 @@ public abstract class ProjectCreationCommandBase protected async Task RunBundleForBlazorWasmOrMauiBlazorTemplateAsync(ProjectBuildArgs projectArgs) { - if (AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) && projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor) + if ((AppTemplateBase.IsAppTemplate(projectArgs.TemplateName) || AppNoLayersTemplateBase.IsAppNoLayersTemplate(projectArgs.TemplateName)) + && projectArgs.UiFramework is UiFramework.Blazor or UiFramework.MauiBlazor) { var isWebassembly = projectArgs.UiFramework == UiFramework.Blazor; var message = isWebassembly ? "Generating bundles for Blazor Wasm" : "Generating bundles for MAUI Blazor"; From f2bf0d154b5e0fdfc3a82870b5272c9e79bf173c Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 26 Jan 2023 14:00:07 +0300 Subject: [PATCH 07/10] Cli: app-Nolayers blazor ui change theme --- .../Building/Steps/ChangeThemeStep.cs | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs index 39bda320fb..8eccc5e4d8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs @@ -73,6 +73,31 @@ public class ChangeThemeStep : ProjectBuildPipelineStep $"Volo.Abp.AspNetCore.Components.Web.{defaultThemeName}Theme.Components", "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic" ); + + ReplacePackageReferenceWithProjectReference( + context, + "/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj", + $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/MyCompanyName.MyProjectName.Host/MyProjectNameServerModule.cs", + $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + $"{defaultThemeName}ThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/MyCompanyName.MyProjectName.Host/MyProjectNameServerModule.cs", + $"Volo.Abp.AspNetCore.Mvc.UI.Theme.{defaultThemeName}", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + $"AbpAspNetCoreMvcUi{defaultThemeName}ThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); #endregion @@ -174,6 +199,31 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme", "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonTheme" ); + + ReplacePackageReferenceWithProjectReference( + context, + "/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX", + @"..\..\..\..\..\lepton-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton\Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/MyCompanyName.MyProjectName.Host/MyProjectNameServerModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.Bundling", + "LeptonXThemeBundles.Styles.Global", + "LeptonThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/MyCompanyName.MyProjectName.Host/MyProjectNameServerModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton", + "AbpAspNetCoreMvcUiLeptonXThemeModule", + "AbpAspNetCoreMvcUiLeptonThemeModule" + ); #endregion From 488d702564b70367933825ae72deecd0c51db099 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 27 Jan 2023 10:15:08 +0300 Subject: [PATCH 08/10] Update AppNoLayersMoveProjectsStep.cs --- .../Building/Steps/AppNoLayersMoveProjectsStep.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs index 29cdc07ade..e9af25d28a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMoveProjectsStep.cs @@ -32,7 +32,7 @@ public class AppNoLayersMoveProjectsStep : ProjectBuildPipelineStep public void MoveFiles(ProjectBuildContext context, string projectFolder, string newProjectFolder) { - var fileEntries = context.Files.Where(file => file.Name.StartsWith(projectFolder)).ToList(); + var fileEntries = context.Files.Where(file => file.Name.StartsWith(projectFolder)); foreach (var fileEntry in fileEntries) { fileEntry.SetName(fileEntry.Name.ReplaceFirst(projectFolder, newProjectFolder)); @@ -51,7 +51,7 @@ public class AppNoLayersMoveProjectsStep : ProjectBuildPipelineStep foreach (var projectFile in projectFiles) { - projectFile.SetContent(projectFile.Content.Replace(oldContent,newContent)); + projectFile.SetContent(projectFile.Content.Replace(oldContent, newContent)); } } } From f3e5a609cf415e41c736bfb1cd0ab8c774fafbd7 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:04:35 +0300 Subject: [PATCH 09/10] Update AppTemplateBase.cs --- .../Templates/App/AppTemplateBase.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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 4958ad802c..7cf58db1cf 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 @@ -216,7 +216,7 @@ public abstract class AppTemplateBase : TemplateInfo RemoveThemeLogoFolders(context, steps); - if (IsDefaultThemeForTemplate(context.BuildArgs.Theme.Value)) + if (IsDefaultThemeForTemplate(context.BuildArgs)) { return; } @@ -238,15 +238,17 @@ public abstract class AppTemplateBase : TemplateInfo } } - private static bool IsDefaultThemeForTemplate(Theme theme) + private static bool IsDefaultThemeForTemplate(ProjectBuildArgs args) { - var defaultThemesForTemplates = new[] + var templateThemes = new Dictionary { - AppTemplate.DefaultTheme, AppProTemplate.DefaultTheme, - AppNoLayersTemplate.DefaultTheme, AppNoLayersProTemplate.DefaultTheme + { AppTemplate.TemplateName, AppTemplate.DefaultTheme }, + { AppProTemplate.TemplateName, AppProTemplate.DefaultTheme }, + { AppNoLayersTemplate.TemplateName, AppNoLayersTemplate.DefaultTheme }, + { AppNoLayersProTemplate.TemplateName, AppNoLayersProTemplate.DefaultTheme } }; - return defaultThemesForTemplates.Any(defaultTheme => defaultTheme == theme); + return templateThemes.TryGetValue(args.TemplateName!, out var templateTheme) && templateTheme == args.Theme; } private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps, bool isProTemplate, UiFramework uiFramework) From b50b8ca6fa91f062bcba47e0d0464f0a8427e334 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 27 Jan 2023 13:09:34 +0300 Subject: [PATCH 10/10] Added AppNoLayersMigrateDatabaseChangeStep --- .../Steps/AppNoLayersMigrateDatabaseChangeStep.cs | 13 +++++++++++++ .../Templates/App/AppNoLayersTemplateBase.cs | 1 + 2 files changed, 14 insertions(+) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMigrateDatabaseChangeStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMigrateDatabaseChangeStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMigrateDatabaseChangeStep.cs new file mode 100644 index 0000000000..ef1a89e6fd --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/AppNoLayersMigrateDatabaseChangeStep.cs @@ -0,0 +1,13 @@ +using System; +using System.Linq; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class AppNoLayersMigrateDatabaseChangeStep : ProjectBuildPipelineStep +{ + public override void Execute(ProjectBuildContext context) + { + var file = context.Files.FirstOrDefault(file => file.Name.EndsWith("/migrate-database.ps1")); + file?.SetContent(file.Content.Replace("MyCompanyName.MyProjectName", "MyCompanyName.MyProjectName.Host")); + } +} 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 index ea2f829614..827fb3be81 100644 --- 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 @@ -78,6 +78,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase "MyCompanyName.MyProjectName.Contracts")); steps.Add(new AppNoLayersMoveProjectsStep()); + steps.Add(new AppNoLayersMigrateDatabaseChangeStep()); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); break;