Browse Source

add connection string param to CLI

pull/3421/head
Alper Ebicoglu 7 years ago
parent
commit
60963a3dc1
  1. 17
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 41
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs
  3. 5
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs
  4. 7
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/ProjectBuildArgs.cs

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

@ -73,6 +73,14 @@ namespace Volo.Abp.Cli.Commands
Logger.LogInformation("UI Framework: " + uiFramework);
}
var connectionString = commandLineArgs
.Options
.GetOrNull(Options.ConnectionString.Short, Options.ConnectionString.Long);
if (connectionString != null)
{
Logger.LogInformation("Connection string: " + connectionString);
}
var mobileApp = GetMobilePreference(commandLineArgs);
if (mobileApp != MobileApp.None)
{
@ -122,7 +130,8 @@ namespace Volo.Abp.Cli.Commands
mobileApp,
gitHubLocalRepositoryPath,
templateSource,
commandLineArgs.Options
commandLineArgs.Options,
connectionString
)
);
@ -309,6 +318,12 @@ namespace Volo.Abp.Cli.Commands
public const string Long = "template-source";
}
public static class ConnectionString
{
public const string Short = "cs";
public const string Long = "connection-string";
}
public static class CreateSolutionFolder
{
public const string Short = "csf";

41
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ConnectionStringChangeStep.cs

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Volo.Abp.Cli.ProjectBuilding.Files;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class ConnectionStringChangeStep : ProjectBuildPipelineStep
{
public override void Execute(ProjectBuildContext context)
{
var newConnectionString = context.BuildArgs.ConnectionString;
var appSettingsJsonFiles = context.Files.Where(f =>
f.Name.EndsWith("appsettings.json", StringComparison.OrdinalIgnoreCase));
foreach (var appSettingsJson in appSettingsJsonFiles)
{
var appSettingsObject = JsonConvert.DeserializeObject<AppSettingsConnectionStringModel>(appSettingsJson.Content);
var oldConnectionString = appSettingsObject.ConnectionStrings.Default;
appSettingsJson.ReplaceText(oldConnectionString, newConnectionString);
}
}
public class ConnectionStringModel
{
public string Default { get; set; }
}
public class AppSettingsConnectionStringModel
{
public ConnectionStringModel ConnectionStrings { get; set; }
public string GetDefaultConnectionString()
{
return ConnectionStrings?.Default;
}
}
}
}

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

@ -28,6 +28,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building
pipeline.Steps.Add(new RemoveRootFolderStep());
}
if (context.BuildArgs.ConnectionString != null)
{
pipeline.Steps.Add(new ConnectionStringChangeStep());
}
pipeline.Steps.Add(new CreateProjectResultZipStep());
return pipeline;

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

@ -27,6 +27,9 @@ namespace Volo.Abp.Cli.ProjectBuilding
[CanBeNull]
public string TemplateSource { get; set; }
[CanBeNull]
public string ConnectionString { get; set; }
[NotNull]
public Dictionary<string, string> ExtraProperties { get; set; }
@ -39,7 +42,8 @@ namespace Volo.Abp.Cli.ProjectBuilding
MobileApp? mobileApp = null,
[CanBeNull] string abpGitHubLocalRepositoryPath = null,
[CanBeNull] string templateSource = null,
Dictionary<string, string> extraProperties = null)
Dictionary<string, string> extraProperties = null,
[CanBeNull] string connectionString = null)
{
SolutionName = Check.NotNull(solutionName, nameof(solutionName));
TemplateName = templateName;
@ -50,6 +54,7 @@ namespace Volo.Abp.Cli.ProjectBuilding
AbpGitHubLocalRepositoryPath = abpGitHubLocalRepositoryPath;
TemplateSource = templateSource;
ExtraProperties = extraProperties ?? new Dictionary<string, string>();
ConnectionString = connectionString;
}
}
}
Loading…
Cancel
Save