From f43e85a01a6ea29a8dc0fb9e543d718f0cbcfa43 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Fri, 5 Aug 2022 10:48:06 +0300 Subject: [PATCH 1/2] Update ChangeThemeStep.cs --- .../Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 dcf8496e66..bebaad5fe2 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 @@ -584,9 +584,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep .Replace(".csproj", "Module") .Replace(".", ""); - fileName = ConvertProjectNameToModuleName(fileName); - - return context.Files.FirstOrDefault(f => f.Name.Contains(splittedProjectFileName.Last() + "/" + fileName)); + return context.Files.FirstOrDefault(f => f.Name.Contains(splittedProjectFileName.Last() + "/" + fileName) && f.Name.EndsWith("Module.cs")); } private static string ConvertProjectNameToModuleName(string moduleName) From 87b77a5acdf38f4b592050eced62ca69fe4be4ec Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Fri, 5 Aug 2022 11:27:00 +0300 Subject: [PATCH 2/2] CLI: Fix the wrong namespace problem while theme switching for blazor --- .../Building/Steps/ChangeThemeStep.cs | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) 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 bebaad5fe2..916f861460 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 @@ -141,6 +141,13 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "AbpAspNetCoreComponentsWebAssemblyLeptonThemeModule" ); + ChangeNamespace( + context, + "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXTheme", + "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonTheme" + ); + #endregion #region MyCompanyName.MyProjectName.Blazor.Server && MyCompanyName.MyProjectName.Blazor.Server.Tiered @@ -210,7 +217,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep } AddProjectReference(file, $@"..\..\..\..\lepton-theme\src\Volo.Abp.LeptonTheme.Management.{projectName}\Volo.Abp.LeptonTheme.Management.{projectName}.csproj"); - AddModuleDependency(moduleFile, $"LeptonThemeManagement{ConvertProjectNameToModuleName($"{projectName}")}Module"); + AddModuleDependency(moduleFile, projectName, $"LeptonThemeManagement{ConvertProjectNameToModuleName($"{projectName}")}Module"); } } @@ -325,21 +332,22 @@ public class ChangeThemeStep : ProjectBuildPipelineStep AddProjectReference(projectFile, reference); - AddModuleDependency(moduleFile, $"LeptonThemeManagement{ConvertProjectNameToModuleName(projectInfo.Key)}Module", + AddModuleDependency(moduleFile, projectInfo.Key, $"LeptonThemeManagement{ConvertProjectNameToModuleName(projectInfo.Key)}Module", underManagementFolder: projectInfo.Key != "HttpApi"); } - private void AddModuleDependency(FileEntry moduleFile, string dependency, bool underManagementFolder = true) + private void AddModuleDependency(FileEntry moduleFile, string projectName, string dependency, bool underManagementFolder = true) { - var lines = moduleFile.GetLines(); + var projectNames = new[] { "Blazor", "Blazor.Server", "Blazor.WebAssembly" }; + var lines = moduleFile.GetLines(); for (var i = 0; i < lines.Length; i++) { if (lines[i].Contains("namespace MyCompanyName.MyProjectName")) { - lines[i - 1] = lines[i - 1] + "using Volo.Abp.LeptonTheme" + (underManagementFolder ? ".Management" : "").EnsureEndsWith(';') + Environment.NewLine; + lines[i - 1] = lines[i - 1] + ("using Volo.Abp.LeptonTheme" + (underManagementFolder ? ".Management." : ".") + (projectNames.Any(p => p == projectName) ? projectName : "")).TrimEnd('.').EnsureEndsWith(';') + Environment.NewLine; } - + if (lines[i].Contains("public class MyProjectName") && lines[i-1].Contains(")]")) { lines[i - 2] = lines[i - 2] + "," + Environment.NewLine + $"\ttypeof({dependency})"; @@ -794,6 +802,12 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "BlazorLeptonXThemeBundles.Scripts.Global", "BlazorLeptonThemeBundles.Scripts.Global" ); + + RemoveLinesByStatement( + context, + $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameBlazorModule.cs", + "Volo.Abp.LeptonX.Shared;" + ); } }