Browse Source

İnitial DatabaseManagementSystemChangeStep

pull/6737/head
Yunus Emre Kalkan 6 years ago
parent
commit
cc3515cd7f
  1. 40
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 1
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs
  3. 12
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseManagementSystem.cs
  4. 40
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/DatabaseManagementSystemChangeStep.cs
  5. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs
  6. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs

40
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -84,6 +84,12 @@ namespace Volo.Abp.Cli.Commands
Logger.LogInformation("Database provider: " + databaseProvider); Logger.LogInformation("Database provider: " + databaseProvider);
} }
var databaseManagementSystem = GetDatabaseManagementSystem(commandLineArgs);
if (databaseManagementSystem != DatabaseManagementSystem.NotSpecified)
{
Logger.LogInformation("DBSM: " + databaseManagementSystem);
}
var uiFramework = GetUiFramework(commandLineArgs); var uiFramework = GetUiFramework(commandLineArgs);
if (uiFramework != UiFramework.NotSpecified) if (uiFramework != UiFramework.NotSpecified)
{ {
@ -147,6 +153,7 @@ namespace Volo.Abp.Cli.Commands
template, template,
version, version,
databaseProvider, databaseProvider,
databaseManagementSystem,
uiFramework, uiFramework,
mobileApp, mobileApp,
gitHubAbpLocalRepositoryPath, gitHubAbpLocalRepositoryPath,
@ -267,6 +274,7 @@ namespace Volo.Abp.Cli.Commands
sb.AppendLine("-ts|--template-source <template-source> (your local or network abp template source)"); sb.AppendLine("-ts|--template-source <template-source> (your local or network abp template source)");
sb.AppendLine("-csf|--create-solution-folder (default: true)"); sb.AppendLine("-csf|--create-solution-folder (default: true)");
sb.AppendLine("-cs|--connection-string <connection-string> (your database connection string)"); sb.AppendLine("-cs|--connection-string <connection-string> (your database connection string)");
sb.AppendLine("--dbms <database-management-system> (your database management system)");
sb.AppendLine("--tiered (if supported by the template)"); sb.AppendLine("--tiered (if supported by the template)");
sb.AppendLine("--no-ui (if supported by the template)"); sb.AppendLine("--no-ui (if supported by the template)");
sb.AppendLine("--no-random-port (Use template's default ports)"); sb.AppendLine("--no-random-port (Use template's default ports)");
@ -289,6 +297,7 @@ namespace Volo.Abp.Cli.Commands
sb.AppendLine(" abp new Acme.BookStore -ts \"D:\\localTemplate\\abp\""); sb.AppendLine(" abp new Acme.BookStore -ts \"D:\\localTemplate\\abp\"");
sb.AppendLine(" abp new Acme.BookStore -csf false"); sb.AppendLine(" abp new Acme.BookStore -csf false");
sb.AppendLine(" abp new Acme.BookStore --local-framework-ref --abp-path \"D:\\github\\abp\""); sb.AppendLine(" abp new Acme.BookStore --local-framework-ref --abp-path \"D:\\github\\abp\"");
sb.AppendLine(" abp new Acme.BookStore --dbms mysql");
sb.AppendLine(" abp new Acme.BookStore --connection-string \"Server=myServerName\\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword\""); sb.AppendLine(" abp new Acme.BookStore --connection-string \"Server=myServerName\\myInstanceName;Database=myDatabase;User Id=myUsername;Password=myPassword\"");
sb.AppendLine(""); sb.AppendLine("");
sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI");
@ -315,6 +324,32 @@ namespace Volo.Abp.Cli.Commands
} }
} }
protected virtual DatabaseManagementSystem GetDatabaseManagementSystem(CommandLineArgs commandLineArgs)
{
var optionValue = commandLineArgs.Options.GetOrNull(Options.DatabaseManagementSystem.Long);
if (optionValue == null)
{
return DatabaseManagementSystem.NotSpecified;
}
switch (optionValue.ToLowerInvariant())
{
case "sqlserver":
return DatabaseManagementSystem.SQLServer;
case "mysql":
return DatabaseManagementSystem.MySQL;
case "postgresql":
return DatabaseManagementSystem.PostgreSQL;
case "oracle":
return DatabaseManagementSystem.Oracle;
case "sqlite":
return DatabaseManagementSystem.SQLite;
default:
return DatabaseManagementSystem.NotSpecified;
}
}
protected virtual UiFramework GetUiFramework(CommandLineArgs commandLineArgs) protected virtual UiFramework GetUiFramework(CommandLineArgs commandLineArgs)
{ {
var optionValue = commandLineArgs.Options.GetOrNull(Options.UiFramework.Short, Options.UiFramework.Long); var optionValue = commandLineArgs.Options.GetOrNull(Options.UiFramework.Short, Options.UiFramework.Long);
@ -362,6 +397,11 @@ namespace Volo.Abp.Cli.Commands
public const string Long = "database-provider"; public const string Long = "database-provider";
} }
public static class DatabaseManagementSystem
{
public const string Long = "dbsm";
}
public static class OutputFolder public static class OutputFolder
{ {
public const string Short = "o"; public const string Short = "o";

1
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SourceCodeDownloadService.cs

@ -37,6 +37,7 @@ namespace Volo.Abp.Cli.Commands.Services
moduleName, moduleName,
version, version,
DatabaseProvider.NotSpecified, DatabaseProvider.NotSpecified,
DatabaseManagementSystem.NotSpecified,
UiFramework.NotSpecified, UiFramework.NotSpecified,
null, null,
gitHubAbpLocalRepositoryPath, gitHubAbpLocalRepositoryPath,

12
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/DatabaseManagementSystem.cs

@ -0,0 +1,12 @@
namespace Volo.Abp.Cli.ProjectBuilding.Building
{
public enum DatabaseManagementSystem
{
NotSpecified,
SQLServer,
MySQL,
PostgreSQL,
Oracle,
SQLite
}
}

40
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/DatabaseManagementSystemChangeStep.cs

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Volo.Abp.Cli.ProjectBuilding.Files;
using Volo.Abp.Text;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class DatabaseManagementSystemChangeStep : ProjectBuildPipelineStep
{
public override void Execute(ProjectBuildContext context)
{
switch (context.BuildArgs.DatabaseManagementSystem)
{
case DatabaseManagementSystem.NotSpecified:
return;
case DatabaseManagementSystem.SQLServer:
return;
case DatabaseManagementSystem.MySQL:
return;
case DatabaseManagementSystem.PostgreSQL:
return;
case DatabaseManagementSystem.Oracle:
return;
case DatabaseManagementSystem.SQLite:
return;
}
}
}
}

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs

@ -18,6 +18,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
pipeline.Steps.Add(new ProjectReferenceReplaceStep()); pipeline.Steps.Add(new ProjectReferenceReplaceStep());
pipeline.Steps.Add(new TemplateCodeDeleteStep()); pipeline.Steps.Add(new TemplateCodeDeleteStep());
pipeline.Steps.Add(new SolutionRenameStep()); pipeline.Steps.Add(new SolutionRenameStep());
pipeline.Steps.Add(new DatabaseManagementSystemChangeStep());
if (context.Template.Name == AppProTemplate.TemplateName || if (context.Template.Name == AppProTemplate.TemplateName ||
context.Template.Name == ModuleProTemplate.TemplateName) context.Template.Name == ModuleProTemplate.TemplateName)
@ -31,6 +32,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
pipeline.Steps.Add(new RemoveRootFolderStep()); pipeline.Steps.Add(new RemoveRootFolderStep());
} }
if (context.BuildArgs.ConnectionString != null) if (context.BuildArgs.ConnectionString != null)
{ {
pipeline.Steps.Add(new ConnectionStringChangeStep()); pipeline.Steps.Add(new ConnectionStringChangeStep());

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs

@ -17,6 +17,8 @@ namespace Volo.Abp.Cli.ProjectBuilding
public DatabaseProvider DatabaseProvider { get; set; } public DatabaseProvider DatabaseProvider { get; set; }
public DatabaseManagementSystem DatabaseManagementSystem { get; set; }
public UiFramework UiFramework { get; set; } public UiFramework UiFramework { get; set; }
public MobileApp? MobileApp { get; set; } public MobileApp? MobileApp { get; set; }
@ -41,6 +43,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
[CanBeNull] string templateName = null, [CanBeNull] string templateName = null,
[CanBeNull] string version = null, [CanBeNull] string version = null,
DatabaseProvider databaseProvider = DatabaseProvider.NotSpecified, DatabaseProvider databaseProvider = DatabaseProvider.NotSpecified,
DatabaseManagementSystem databaseManagementSystem = DatabaseManagementSystem.NotSpecified,
UiFramework uiFramework = UiFramework.NotSpecified, UiFramework uiFramework = UiFramework.NotSpecified,
MobileApp? mobileApp = null, MobileApp? mobileApp = null,
[CanBeNull] string abpGitHubLocalRepositoryPath = null, [CanBeNull] string abpGitHubLocalRepositoryPath = null,
@ -53,6 +56,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
TemplateName = templateName; TemplateName = templateName;
Version = version; Version = version;
DatabaseProvider = databaseProvider; DatabaseProvider = databaseProvider;
DatabaseManagementSystem = databaseManagementSystem;
UiFramework = uiFramework; UiFramework = uiFramework;
MobileApp = mobileApp; MobileApp = mobileApp;
AbpGitHubLocalRepositoryPath = abpGitHubLocalRepositoryPath; AbpGitHubLocalRepositoryPath = abpGitHubLocalRepositoryPath;
@ -62,4 +66,4 @@ namespace Volo.Abp.Cli.ProjectBuilding
ConnectionString = connectionString; ConnectionString = connectionString;
} }
} }
} }

Loading…
Cancel
Save