diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 96e59152de..7a413fbbe9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -12,6 +12,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Auth; +using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding.Building; @@ -31,14 +32,17 @@ namespace Volo.Abp.Cli.Commands protected TemplateProjectBuilder TemplateProjectBuilder { get; } public ITemplateInfoProvider TemplateInfoProvider { get; } + public ConnectionStringProvider ConnectionStringProvider { get; } public NewCommand(TemplateProjectBuilder templateProjectBuilder , ITemplateInfoProvider templateInfoProvider, - EfCoreMigrationManager efCoreMigrationManager) + EfCoreMigrationManager efCoreMigrationManager, + ConnectionStringProvider connectionStringProvider) { _efCoreMigrationManager = efCoreMigrationManager; TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; + ConnectionStringProvider = connectionStringProvider; Logger = NullLogger.Instance; } @@ -164,7 +168,7 @@ namespace Volo.Abp.Cli.Commands databaseManagementSystem != DatabaseManagementSystem.NotSpecified && databaseManagementSystem != DatabaseManagementSystem.SQLServer) { - connectionString = GetNewConnectionStringByDbms(databaseManagementSystem, outputFolder); + connectionString = ConnectionStringProvider.GetByDbms(databaseManagementSystem, outputFolder); } commandLineArgs.Options.Add(CliConsts.Command, commandLineArgs.Command); @@ -236,24 +240,6 @@ namespace Volo.Abp.Cli.Commands } } - private string GetNewConnectionStringByDbms(DatabaseManagementSystem databaseManagementSystem, string outputFolder) - { - switch (databaseManagementSystem) - { - case DatabaseManagementSystem.MySQL: - return "Server=localhost;Port=3306;Database=MyProjectName;Uid=root;Pwd=myPassword;"; - case DatabaseManagementSystem.PostgreSQL: - return "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=MyProjectName;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;"; - //case DatabaseManagementSystem.Oracle: - case DatabaseManagementSystem.OracleDevart: - return "Data Source=MyProjectName;Integrated Security=yes;"; - case DatabaseManagementSystem.SQLite: - return $"Data Source={Path.Combine(outputFolder , "MyProjectName.db")};".Replace("\\", "\\\\"); - default: - return null; - } - } - private void OpenThanksPage(UiFramework uiFramework, DatabaseProvider databaseProvider, bool tiered, bool commercial) { uiFramework = uiFramework == UiFramework.NotSpecified || uiFramework == UiFramework.None ? UiFramework.Mvc : uiFramework; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs new file mode 100644 index 0000000000..82926df1b3 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/ConnectionStringProvider.cs @@ -0,0 +1,30 @@ +using System.IO; +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands.Services +{ + public class ConnectionStringProvider : ITransientDependency + { + public string GetByDbms(DatabaseManagementSystem databaseManagementSystem, string outputFolder = "") + { + switch (databaseManagementSystem) + { + case DatabaseManagementSystem.NotSpecified: + case DatabaseManagementSystem.SQLServer: + return "Server=localhost;Database=MyProjectName;Trusted_Connection=True"; + case DatabaseManagementSystem.MySQL: + return "Server=localhost;Port=3306;Database=MyProjectName;Uid=root;Pwd=myPassword;"; + case DatabaseManagementSystem.PostgreSQL: + return "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=MyProjectName;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;"; + //case DatabaseManagementSystem.Oracle: + case DatabaseManagementSystem.OracleDevart: + return "Data Source=MyProjectName;Integrated Security=yes;"; + case DatabaseManagementSystem.SQLite: + return $"Data Source={Path.Combine(outputFolder,"database\\MyProjectName.db")};Version=3;"; + default: + return null; + } + } + } +}