From 525d223155fedd3871601b651545c0fa5b757af0 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Fri, 12 May 2023 16:04:00 +0300 Subject: [PATCH] Update ChangeThemeStep.cs --- .../Building/Steps/ChangeThemeStep.cs | 136 +++++++----------- 1 file changed, 53 insertions(+), 83 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 f05cb80df3..c303c1196a 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 @@ -10,9 +10,10 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; public class ChangeThemeStep : ProjectBuildPipelineStep { - private const string BasicTheme = "Basic"; - private const string LeptonXTheme = "LeptonX"; - private const string LeptonTheme = "Lepton"; + private const string Basic = "Basic"; + private const string LeptonXLite = "LeptonXLite"; + private const string LeptonX = "LeptonX"; + private const string Lepton = "Lepton"; public override void Execute(ProjectBuildContext context) { @@ -35,29 +36,41 @@ public class ChangeThemeStep : ProjectBuildPipelineStep protected virtual void ChangeToBasicTheme(ProjectBuildContext context) { var defaultThemeName = context.BuildArgs.TemplateName is AppTemplate.TemplateName or AppNoLayersTemplate.TemplateName - ? "LeptonXLite" : "LeptonX"; + ? LeptonXLite : LeptonX; ChangeThemeToBasicForMvcProjects(context, defaultThemeName); ChangeThemeToBasicForBlazorProjects(context, defaultThemeName); ChangeThemeToBasicForBlazorServerProjects(context, defaultThemeName); - ChangeThemeToBasicForAngularProjects(context, defaultThemeName); + ChangeThemeForAngularProjects(context, defaultThemeName, Basic, GetAngularPackageName(context.BuildArgs.Theme!.Value), GetAngularPackageName(Theme.Basic)); } protected virtual void ChangeToLeptonTheme(ProjectBuildContext context) { //common - RenameLeptonXFolders(context, folderName: "Lepton"); + RenameFolders(context, oldFolderName: LeptonX , newFolderName: Lepton); AddLeptonThemeManagementReferenceToProjects(context); ChangeThemeToLeptonForMvcProjects(context); ChangeThemeToLeptonForBlazorProjects(context); ChangeThemeToLeptonForBlazorServerProjects(context); - ChangeThemeToLeptonForAngularProjects(context); + ChangeThemeForAngularProjects(context, oldThemeName: LeptonX, Lepton, GetAngularPackageName(Theme.LeptonX), GetAngularPackageName(Theme.Lepton)); + ConfigureLeptonManagementPackagesForNoLayersMvc(context, "/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.csproj", new[] { "Web", "HttpApi", "Application" }); ChangeThemeToLeptonForNoLayersBlazorServerProjects(context); ChangeThemeToLeptonForMauiBlazorProjects(context); } + private static string GetAngularPackageName(Theme theme) + { + return theme switch + { + Theme.LeptonX => "@volosoft/abp.ng.theme.lepton-x", + Theme.LeptonXLite => "@abp/ng.theme.lepton-x", + Theme.Basic => "@abp/ng.theme.basic", + _ => string.Empty + }; + } + private static void ChangeThemeToBasicForBlazorProjects(ProjectBuildContext context, string defaultThemeName) { ReplacePackageReferenceWithProjectReference( @@ -78,7 +91,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep context, "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", defaultThemeName, - BasicTheme + Basic ); ReplacePackageReferenceWithProjectReference( @@ -92,47 +105,38 @@ public class ChangeThemeStep : ProjectBuildPipelineStep context, "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", defaultThemeName, - BasicTheme + Basic ); } - private static void ChangeThemeToBasicForAngularProjects(ProjectBuildContext context, string defaultThemeName) + private static void ChangeThemeForAngularProjects(ProjectBuildContext context, string oldThemeName, string newThemeName, string oldPackageName, string newPackageName) { if (context.BuildArgs.UiFramework != UiFramework.Angular) { return; } - var angularPackageName = context.BuildArgs.TemplateName is AppTemplate.TemplateName or AppNoLayersTemplate.TemplateName - ? "@abp/ng.theme.lepton-x" : "@volosoft/abp.ng.theme.lepton-x"; - ReplaceImportPackage( context, "/angular/src/app/app.module.ts", - angularPackageName, - "@abp/ng.theme.basic" + oldPackageName, + newPackageName ); - + RemoveLinesByStatement( context, "/angular/src/app/app.module.ts", "SideMenuLayoutModule" ); - + ReplaceAllKeywords( context, "/angular/src/app/app.module.ts", - "ThemeLeptonXModule", - "ThemeBasicModule" + $"Theme{oldThemeName}Module", + $"Theme{newThemeName}Module" ); - RemoveLinesByStatement( - context, - "/angular/angular.json", - "node_modules/bootstrap-icons/font/bootstrap-icons.css" - ); - - if (defaultThemeName != "LeptonX") + if (oldThemeName != LeptonX) { return; } @@ -165,8 +169,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); ReplacePackageReferenceWithProjectReference( @@ -179,42 +183,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", - LeptonXTheme, - LeptonTheme - ); - } - - private static void ChangeThemeToLeptonForAngularProjects(ProjectBuildContext context) - { - if (context.BuildArgs.UiFramework != UiFramework.Angular) - { - return; - } - - ReplaceImportPackage( - context, - "/angular/src/app/app.module.ts", - "@volosoft/abp.ng.theme.lepton-x", - "@volo/abp.ng.theme.lepton" - ); - - RemoveLinesByStatement( - context, - "/angular/src/app/app.module.ts", - "SideMenuLayoutModule" - ); - - ReplaceAllKeywords( - context, - "/angular/src/app/app.module.ts", - "ThemeLeptonXModule", - "ThemeLeptonModule" - ); - - RemoveLinesByStatement( - context, - "/angular/angular.json", - "node_modules/bootstrap-icons/font/bootstrap-icons.css" + LeptonX, + Lepton ); } @@ -272,8 +242,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, moduleFile.Name, - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); RemoveLinesByStatement( @@ -561,11 +531,11 @@ public class ChangeThemeStep : ProjectBuildPipelineStep return moduleName.Replace(".", ""); } - private static void RenameLeptonXFolders(ProjectBuildContext context, string folderName) + private static void RenameFolders(ProjectBuildContext context, string oldFolderName, string newFolderName) { - foreach (var file in context.Files.Where(x => x.Name.Contains("LeptonX") && x.IsDirectory)) + foreach (var file in context.Files.Where(x => x.Name.Contains(oldFolderName) && x.IsDirectory)) { - new MoveFolderStep(file.Name, file.Name.Replace("LeptonX", folderName)).Execute(context); + new MoveFolderStep(file.Name, file.Name.Replace(oldFolderName, newFolderName)).Execute(context); } } @@ -619,7 +589,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep context, $"/MyCompanyName.MyProjectName{project.Key}/{project.Value}.cs", defaultThemeName, - BasicTheme + Basic ); } } @@ -654,21 +624,21 @@ public class ChangeThemeStep : ProjectBuildPipelineStep context, $"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml", $"{defaultThemeName}Theme.Components", - BasicTheme + Basic ); ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{project.Key}/{project.Value}.cs", defaultThemeName, - BasicTheme + Basic ); ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml", defaultThemeName, - BasicTheme + Basic ); } } @@ -696,15 +666,15 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameBlazorModule.cs", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); RemoveLinesByStatement( @@ -745,15 +715,15 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameModule.cs", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); ReplaceAllKeywords( context, $"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); } } @@ -800,8 +770,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ReplaceAllKeywords( context, "/MyCompanyName.MyProjectName.MauiBlazor/MyProjectNameMauiBlazorModule.cs", - LeptonXTheme, - LeptonTheme + LeptonX, + Lepton ); } } \ No newline at end of file