Browse Source

Use hasDbMigrations in AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.

pull/9194/head
maliming 5 years ago
parent
commit
b486cf155a
  1. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs
  2. 89
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs

@ -75,7 +75,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
{ {
if (context.BuildArgs.DatabaseProvider == DatabaseProvider.MongoDb) if (context.BuildArgs.DatabaseProvider == DatabaseProvider.MongoDb)
{ {
steps.Add(new AppTemplateSwitchEntityFrameworkCoreToMongoDbStep()); steps.Add(new AppTemplateSwitchEntityFrameworkCoreToMongoDbStep(HasDbMigrations));
} }
if (context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore) if (context.BuildArgs.DatabaseProvider != DatabaseProvider.EntityFrameworkCore)

89
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs

@ -5,6 +5,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
{ {
public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPipelineStep public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPipelineStep
{ {
private readonly bool _hasDbMigrations;
public AppTemplateSwitchEntityFrameworkCoreToMongoDbStep(bool hasDbMigrations)
{
_hasDbMigrations = hasDbMigrations;
}
public override void Execute(ProjectBuildContext context) public override void Execute(ProjectBuildContext context)
{ {
//MyCompanyName.MyProjectName.Web //MyCompanyName.MyProjectName.Web
@ -12,7 +19,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -21,7 +28,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -35,7 +42,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -44,7 +51,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -58,7 +65,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -67,7 +74,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -81,7 +88,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -90,7 +97,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -104,7 +111,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -113,7 +120,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -127,7 +134,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -136,7 +143,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new[] {"MyProjectNameEntityFrameworkCoreDbMigrationsModule", "MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -199,7 +206,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
ChangeProjectReference( ChangeProjectReference(
context, context,
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyCompanyName.MyProjectName.Web.Public.csproj", "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyCompanyName.MyProjectName.Web.Public.csproj",
new[] {"EntityFrameworkCore.DbMigrations", "EntityFrameworkCore"}, _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
"MongoDB" "MongoDB"
); );
@ -208,7 +215,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
"/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyProjectNameWebPublicModule.cs", "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyProjectNameWebPublicModule.cs",
"MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.EntityFrameworkCore",
"MyCompanyName.MyProjectName.MongoDB", "MyCompanyName.MyProjectName.MongoDB",
new []{"MyProjectNameEntityFrameworkCoreDbMigrationsModule","MyProjectNameEntityFrameworkCoreModule"}, _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
"MyProjectNameMongoDbModule" "MyProjectNameMongoDbModule"
); );
@ -224,15 +231,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
string targetProjectFilePath, string targetProjectFilePath,
string oldReference, string oldReference,
string newReference) string newReference)
{
ChangeProjectReference(context, targetProjectFilePath, new[] {oldReference}, newReference);
}
private void ChangeProjectReference(
ProjectBuildContext context,
string targetProjectFilePath,
string[] oldReferences,
string newReference)
{ {
var file = context.FindFile(targetProjectFilePath); var file = context.FindFile(targetProjectFilePath);
@ -246,28 +244,15 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
var lines = file.GetLines(); var lines = file.GetLines();
for (var i = 0; i < lines.Length; i++) for (var i = 0; i < lines.Length; i++)
{ {
if (lines[i].Contains("ProjectReference")) if (lines[i].Contains("ProjectReference") && lines[i].Contains(oldReference))
{ {
var changed = false; lines[i] = lines[i].Replace(oldReference, newReference);
foreach (var oldReference in oldReferences) file.SetLines(lines);
{ return;
if (lines[i].Contains(oldReference))
{
lines[i] = lines[i].Replace(oldReference, newReference);
file.SetLines(lines);
changed = true;
break;
}
}
if (changed)
{
return;
}
} }
} }
throw new ApplicationException($"Could not find the '{string.Join(",", oldReferences)}' reference in the project '{targetProjectFilePath}'!"); throw new ApplicationException($"Could not find the '{oldReference}' reference in the project '{targetProjectFilePath}'!");
} }
private void ChangeNamespaceAndKeyword( private void ChangeNamespaceAndKeyword(
@ -277,17 +262,6 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
string newNamespace, string newNamespace,
string oldKeyword, string oldKeyword,
string newKeyword) string newKeyword)
{
ChangeNamespaceAndKeyword(context, targetModuleFilePath, oldNamespace, newNamespace, new[] {oldKeyword}, newKeyword);
}
private void ChangeNamespaceAndKeyword(
ProjectBuildContext context,
string targetModuleFilePath,
string oldNamespace,
string newNamespace,
string[] oldKeywords,
string newKeyword)
{ {
var file = context.FindFile(targetModuleFilePath); var file = context.FindFile(targetModuleFilePath);
@ -306,16 +280,9 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App
{ {
lines[i] = $"using {newNamespace};"; lines[i] = $"using {newNamespace};";
} }
else else if (lines[i].Contains(oldKeyword))
{ {
foreach (var oldKeyword in oldKeywords) lines[i] = lines[i].Replace(oldKeyword, newKeyword);
{
if (lines[i].Contains(oldKeyword))
{
lines[i] = lines[i].Replace(oldKeyword, newKeyword);
break;
}
}
} }
} }

Loading…
Cancel
Save