Browse Source

Update ChangeThemeStep.cs

pull/16551/head
Engincan VESKE 3 years ago
parent
commit
525d223155
  1. 136
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs

136
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 public class ChangeThemeStep : ProjectBuildPipelineStep
{ {
private const string BasicTheme = "Basic"; private const string Basic = "Basic";
private const string LeptonXTheme = "LeptonX"; private const string LeptonXLite = "LeptonXLite";
private const string LeptonTheme = "Lepton"; private const string LeptonX = "LeptonX";
private const string Lepton = "Lepton";
public override void Execute(ProjectBuildContext context) public override void Execute(ProjectBuildContext context)
{ {
@ -35,29 +36,41 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
protected virtual void ChangeToBasicTheme(ProjectBuildContext context) protected virtual void ChangeToBasicTheme(ProjectBuildContext context)
{ {
var defaultThemeName = context.BuildArgs.TemplateName is AppTemplate.TemplateName or AppNoLayersTemplate.TemplateName var defaultThemeName = context.BuildArgs.TemplateName is AppTemplate.TemplateName or AppNoLayersTemplate.TemplateName
? "LeptonXLite" : "LeptonX"; ? LeptonXLite : LeptonX;
ChangeThemeToBasicForMvcProjects(context, defaultThemeName); ChangeThemeToBasicForMvcProjects(context, defaultThemeName);
ChangeThemeToBasicForBlazorProjects(context, defaultThemeName); ChangeThemeToBasicForBlazorProjects(context, defaultThemeName);
ChangeThemeToBasicForBlazorServerProjects(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) protected virtual void ChangeToLeptonTheme(ProjectBuildContext context)
{ {
//common //common
RenameLeptonXFolders(context, folderName: "Lepton"); RenameFolders(context, oldFolderName: LeptonX , newFolderName: Lepton);
AddLeptonThemeManagementReferenceToProjects(context); AddLeptonThemeManagementReferenceToProjects(context);
ChangeThemeToLeptonForMvcProjects(context); ChangeThemeToLeptonForMvcProjects(context);
ChangeThemeToLeptonForBlazorProjects(context); ChangeThemeToLeptonForBlazorProjects(context);
ChangeThemeToLeptonForBlazorServerProjects(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" }); ConfigureLeptonManagementPackagesForNoLayersMvc(context, "/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.csproj", new[] { "Web", "HttpApi", "Application" });
ChangeThemeToLeptonForNoLayersBlazorServerProjects(context); ChangeThemeToLeptonForNoLayersBlazorServerProjects(context);
ChangeThemeToLeptonForMauiBlazorProjects(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) private static void ChangeThemeToBasicForBlazorProjects(ProjectBuildContext context, string defaultThemeName)
{ {
ReplacePackageReferenceWithProjectReference( ReplacePackageReferenceWithProjectReference(
@ -78,7 +91,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
context, context,
"/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
defaultThemeName, defaultThemeName,
BasicTheme Basic
); );
ReplacePackageReferenceWithProjectReference( ReplacePackageReferenceWithProjectReference(
@ -92,47 +105,38 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
context, context,
"/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs",
defaultThemeName, 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) if (context.BuildArgs.UiFramework != UiFramework.Angular)
{ {
return; return;
} }
var angularPackageName = context.BuildArgs.TemplateName is AppTemplate.TemplateName or AppNoLayersTemplate.TemplateName
? "@abp/ng.theme.lepton-x" : "@volosoft/abp.ng.theme.lepton-x";
ReplaceImportPackage( ReplaceImportPackage(
context, context,
"/angular/src/app/app.module.ts", "/angular/src/app/app.module.ts",
angularPackageName, oldPackageName,
"@abp/ng.theme.basic" newPackageName
); );
RemoveLinesByStatement( RemoveLinesByStatement(
context, context,
"/angular/src/app/app.module.ts", "/angular/src/app/app.module.ts",
"SideMenuLayoutModule" "SideMenuLayoutModule"
); );
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
"/angular/src/app/app.module.ts", "/angular/src/app/app.module.ts",
"ThemeLeptonXModule", $"Theme{oldThemeName}Module",
"ThemeBasicModule" $"Theme{newThemeName}Module"
); );
RemoveLinesByStatement( if (oldThemeName != LeptonX)
context,
"/angular/angular.json",
"node_modules/bootstrap-icons/font/bootstrap-icons.css"
);
if (defaultThemeName != "LeptonX")
{ {
return; return;
} }
@ -165,8 +169,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
"/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
ReplacePackageReferenceWithProjectReference( ReplacePackageReferenceWithProjectReference(
@ -179,42 +183,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
"/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs", "/MyCompanyName.MyProjectName.Host/MyProjectNameHostModule.cs",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
);
}
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"
); );
} }
@ -272,8 +242,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
moduleFile.Name, moduleFile.Name,
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
RemoveLinesByStatement( RemoveLinesByStatement(
@ -561,11 +531,11 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
return moduleName.Replace(".", ""); 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, context,
$"/MyCompanyName.MyProjectName{project.Key}/{project.Value}.cs", $"/MyCompanyName.MyProjectName{project.Key}/{project.Value}.cs",
defaultThemeName, defaultThemeName,
BasicTheme Basic
); );
} }
} }
@ -654,21 +624,21 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
context, context,
$"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml", $"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml",
$"{defaultThemeName}Theme.Components", $"{defaultThemeName}Theme.Components",
BasicTheme Basic
); );
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{project.Key}/{project.Value}.cs", $"/MyCompanyName.MyProjectName.{project.Key}/{project.Value}.cs",
defaultThemeName, defaultThemeName,
BasicTheme Basic
); );
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml", $"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml",
defaultThemeName, defaultThemeName,
BasicTheme Basic
); );
} }
} }
@ -696,15 +666,15 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameBlazorModule.cs", $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameBlazorModule.cs",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml", $"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
RemoveLinesByStatement( RemoveLinesByStatement(
@ -745,15 +715,15 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameModule.cs", $"/MyCompanyName.MyProjectName.{projectName}/MyProjectNameModule.cs",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
$"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml", $"/MyCompanyName.MyProjectName.{projectName}/Pages/_Host.cshtml",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
} }
} }
@ -800,8 +770,8 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
ReplaceAllKeywords( ReplaceAllKeywords(
context, context,
"/MyCompanyName.MyProjectName.MauiBlazor/MyProjectNameMauiBlazorModule.cs", "/MyCompanyName.MyProjectName.MauiBlazor/MyProjectNameMauiBlazorModule.cs",
LeptonXTheme, LeptonX,
LeptonTheme Lepton
); );
} }
} }
Loading…
Cancel
Save