|
|
|
@ -1,7 +1,9 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text.RegularExpressions; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Newtonsoft.Json.Linq; |
|
|
|
using Volo.Abp.Cli.ProjectBuilding.Files; |
|
|
|
|
|
|
|
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps |
|
|
|
@ -10,31 +12,24 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps |
|
|
|
{ |
|
|
|
public override void Execute(ProjectBuildContext context) |
|
|
|
{ |
|
|
|
var newConnectionString = context.BuildArgs.ConnectionString; |
|
|
|
var newConnectionString = "\"Default\": \"" + 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; } |
|
|
|
try |
|
|
|
{ |
|
|
|
var jsonObject = JObject.Parse(appSettingsJson.Content); |
|
|
|
var defaultConnectionString = ((Newtonsoft.Json.Linq.JContainer)jsonObject["ConnectionStrings"]).First.ToString(); |
|
|
|
|
|
|
|
public string GetDefaultConnectionString() |
|
|
|
{ |
|
|
|
return ConnectionStrings?.Default; |
|
|
|
appSettingsJson.ReplaceText(defaultConnectionString, newConnectionString); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
Console.WriteLine("Cannot change the connection string in " + appSettingsJson.Name + ". Error: " + ex.Message); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|