mirror of https://github.com/abpframework/abp.git
33 changed files with 839 additions and 42 deletions
@ -0,0 +1,623 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
|
||||
|
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; |
||||
|
|
||||
|
public class ChangeThemeStep : ProjectBuildPipelineStep |
||||
|
{ |
||||
|
public override void Execute(ProjectBuildContext context) |
||||
|
{ |
||||
|
if (!context.BuildArgs.Theme.HasValue) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
switch (context.BuildArgs.Theme) |
||||
|
{ |
||||
|
case Theme.Basic: |
||||
|
ChangeToBasicTheme(context); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
protected void ChangeToBasicTheme(ProjectBuildContext context) |
||||
|
{ |
||||
|
#region MyCompanyName.MyProjectName.Web
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.HttpApi.HostWithIds
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName..HttpApi.HostWithIds.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Blazor
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj", |
||||
|
"Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme", |
||||
|
"Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", |
||||
|
"AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreComponentsWebAssemblyBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespace( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Blazor.Server
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme", |
||||
|
"AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreComponentsServerBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Scripts.Global", |
||||
|
"BlazorBasicThemeBundles.Scripts.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Blazor.Server.Tiered
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme", |
||||
|
"AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreComponentsServerBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Scripts.Global", |
||||
|
"BlazorBasicThemeBundles.Scripts.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.AuthServer
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Web.Mvc
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyCompanyName.MyProjectName.Web.Mvc.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Web.Mvc.Mongo
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyCompanyName.MyProjectName.Web.Mvc.Mongo.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Blazor.Server - (app-nolayers)
|
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme", |
||||
|
"AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreComponentsServerBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region MyCompanyName.MyProjectName.Blazor.Server.Mongo
|
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" |
||||
|
); |
||||
|
|
||||
|
ReplacePackageReferenceWithProjectReference( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
@"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme", |
||||
|
"AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreComponentsServerBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", |
||||
|
"AbpAspNetCoreMvcUiLeptonXLiteThemeModule", |
||||
|
"AbpAspNetCoreMvcUiBasicThemeModule" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", |
||||
|
"LeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
ChangeNamespaceAndKeyword( |
||||
|
context, |
||||
|
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", |
||||
|
"Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", |
||||
|
"BlazorLeptonXLiteThemeBundles.Styles.Global", |
||||
|
"BlazorBasicThemeBundles.Styles.Global" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region Angular
|
||||
|
|
||||
|
ReplaceImportPackage( |
||||
|
context, |
||||
|
"/angular/src/app/app.module.ts", |
||||
|
"@abp/ng.theme.lepton-x", |
||||
|
"@abp/ng.theme.basic" |
||||
|
); |
||||
|
|
||||
|
RemoveLinesByStatement( |
||||
|
context, |
||||
|
"/angular/src/app/app.module.ts", |
||||
|
"SideMenuLayoutModule" |
||||
|
); |
||||
|
|
||||
|
ReplaceMethodNames( |
||||
|
context, |
||||
|
"/angular/src/app/app.module.ts", |
||||
|
"ThemeLeptonXModule", |
||||
|
"ThemeBasicModule" |
||||
|
); |
||||
|
|
||||
|
#endregion
|
||||
|
} |
||||
|
|
||||
|
protected void ReplacePackageReferenceWithProjectReference( |
||||
|
ProjectBuildContext context, |
||||
|
string targetProjectFilePath, |
||||
|
string packageReference, |
||||
|
string projectReference) |
||||
|
{ |
||||
|
var file = context.FindFile(targetProjectFilePath); |
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
|
||||
|
var lines = file.GetLines(); |
||||
|
var lineIndex = lines.FindIndex(line => line.Contains("PackageReference") && line.Contains(packageReference)); |
||||
|
if (lineIndex == -1) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
lines[lineIndex] = lines[lineIndex].Replace(lines[lineIndex], $"\t<ProjectReference Include=\"{projectReference}\" />"); |
||||
|
file.SetLines(lines); |
||||
|
} |
||||
|
|
||||
|
protected void ChangeNamespaceAndKeyword( |
||||
|
ProjectBuildContext context, |
||||
|
string targetModuleFilePath, |
||||
|
string oldNamespace, |
||||
|
string newNamespace, |
||||
|
string oldKeyword, |
||||
|
string newKeyword) |
||||
|
{ |
||||
|
var file = context.FindFile(targetModuleFilePath); |
||||
|
|
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
|
||||
|
var lines = file.GetLines(); |
||||
|
|
||||
|
for (var i = 0; i < lines.Length; i++) |
||||
|
{ |
||||
|
if (lines[i].Contains($"using {oldNamespace};")) |
||||
|
{ |
||||
|
lines[i] = $"using {newNamespace};"; |
||||
|
} |
||||
|
else if (lines[i].Contains(oldKeyword)) |
||||
|
{ |
||||
|
lines[i] = lines[i].Replace(oldKeyword, newKeyword); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
file.SetLines(lines); |
||||
|
} |
||||
|
|
||||
|
protected void ChangeNamespace( |
||||
|
ProjectBuildContext context, |
||||
|
string targetModuleFilePath, |
||||
|
string oldNamespace, |
||||
|
string newNamespace) |
||||
|
{ |
||||
|
var file = context.FindFile(targetModuleFilePath); |
||||
|
|
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
|
||||
|
var lines = file.GetLines(); |
||||
|
for (var i = 0; i < lines.Length; i++) |
||||
|
{ |
||||
|
if (lines[i].Contains($"using {oldNamespace};")) |
||||
|
{ |
||||
|
lines[i] = $"using {newNamespace};"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
file.SetLines(lines); |
||||
|
} |
||||
|
|
||||
|
protected void ReplaceImportPackage( |
||||
|
ProjectBuildContext context, |
||||
|
string filePath, |
||||
|
string oldImportPackage, |
||||
|
string newImportPackage) |
||||
|
{ |
||||
|
var file = context.FindFile(filePath); |
||||
|
|
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
var lines = file.GetLines(); |
||||
|
var lineIndex = lines.FindIndex(line => line.Contains($"from '{oldImportPackage}'")); |
||||
|
if (lineIndex == -1) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
lines[lineIndex] = lines[lineIndex].Replace(oldImportPackage, newImportPackage); |
||||
|
file.SetLines(lines); |
||||
|
} |
||||
|
|
||||
|
protected void RemoveLinesByStatement( |
||||
|
ProjectBuildContext context, |
||||
|
string filePath, |
||||
|
string statement) |
||||
|
{ |
||||
|
var file = context.FindFile(filePath); |
||||
|
|
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
|
||||
|
var lines = file.GetLines(); |
||||
|
for (var i = 0; i < lines.Length; i++) |
||||
|
{ |
||||
|
if (lines[i].Contains(statement)) |
||||
|
{ |
||||
|
lines[i] = null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
file.SetLines(lines.Where(x => x != null)); |
||||
|
} |
||||
|
|
||||
|
protected void ReplaceMethodNames( |
||||
|
ProjectBuildContext context, |
||||
|
string filePath, |
||||
|
string oldMethodName, |
||||
|
string newMethodName) |
||||
|
{ |
||||
|
var file = context.FindFile(filePath); |
||||
|
|
||||
|
if (file == null) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
file.NormalizeLineEndings(); |
||||
|
|
||||
|
var lines = file.GetLines(); |
||||
|
for (var i = 0; i < lines.Length; i++) |
||||
|
{ |
||||
|
if (lines[i].Contains(oldMethodName)) |
||||
|
{ |
||||
|
lines[i] = lines[i].Replace(oldMethodName, newMethodName); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
file.SetLines(lines); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,58 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.IO; |
||||
|
using System.Linq; |
||||
|
using NuGet.Versioning; |
||||
|
using Volo.Abp.Cli.Utils; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
|
||||
|
namespace Volo.Abp.Cli.ProjectModification; |
||||
|
|
||||
|
public class ThemePackageAdder : ITransientDependency |
||||
|
{ |
||||
|
protected ICmdHelper CmdHelper { get; } |
||||
|
protected PackageJsonFileFinder PackageJsonFileFinder { get; } |
||||
|
|
||||
|
public ThemePackageAdder(ICmdHelper cmdHelper, PackageJsonFileFinder packageJsonFileFinder) |
||||
|
{ |
||||
|
CmdHelper = cmdHelper; |
||||
|
PackageJsonFileFinder = packageJsonFileFinder; |
||||
|
} |
||||
|
|
||||
|
public void AddNpmPackage(string rootDirectory, string package, string version) |
||||
|
{ |
||||
|
var packageJsonFilePaths = PackageJsonFileFinder.Find(rootDirectory); |
||||
|
|
||||
|
AddPackage(packageJsonFilePaths, package, version); |
||||
|
} |
||||
|
|
||||
|
public void AddAngularPackage(string rootDirectory, string package, string version) |
||||
|
{ |
||||
|
var angularPackageJsonFilePaths = PackageJsonFileFinder.Find(rootDirectory).Where(x => File.Exists(x.RemovePostFix("package.json") + "angular.json")).ToList(); |
||||
|
|
||||
|
AddPackage(angularPackageJsonFilePaths, package, version); |
||||
|
} |
||||
|
|
||||
|
private void AddPackage(List<string> packageJsonFilePaths, string package, string version) |
||||
|
{ |
||||
|
if (!packageJsonFilePaths.Any() || string.IsNullOrWhiteSpace(package)) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
var installCommand = IsYarnAvailable() ? "yarn add " : "npm install "; |
||||
|
var packageVersion = !string.IsNullOrWhiteSpace(version) ? $" --version {version}" : string.Empty; |
||||
|
|
||||
|
foreach (var packageJsonFilePath in packageJsonFilePaths) |
||||
|
{ |
||||
|
var directory = Path.GetDirectoryName(packageJsonFilePath).EnsureEndsWith(Path.DirectorySeparatorChar); |
||||
|
CmdHelper.RunCmd(installCommand + package + packageVersion, workingDirectory: directory); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private bool IsYarnAvailable() |
||||
|
{ |
||||
|
var output = CmdHelper.RunCmdAndGetOutput("yarn -v").Trim(); |
||||
|
return SemanticVersion.TryParse(output, out _); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue