diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs index 6c89656b47..e4e5f0bb2e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AngularModuleSourceCodeAdder.cs @@ -39,7 +39,7 @@ namespace Volo.Abp.Cli.ProjectModification } catch (Exception e) { - Logger.LogError("Unable to add angular source code: " + e.Message); + Logger.LogError("Unable to add angular source code: " + e.Message + Environment.NewLine + e.StackTrace); } } @@ -127,6 +127,11 @@ namespace Volo.Abp.Cli.ProjectModification subFolderName = $"/{subFolderName}"; } + if (compilerOptions["paths"][$"{projectPackageName}{subFolderName}"] != null) + { + continue; + } + ((JObject) compilerOptions["paths"]).Add( new JProperty($"{projectPackageName}{subFolderName}", new JArray(new object[] {publicApi}) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 8cfbe5cb94..90f4ff5d8f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -115,7 +115,7 @@ namespace Volo.Abp.Cli.ProjectModification await NugetPackageToLocalReferenceConverter.Convert(module, solutionFile); } - await AddAngularSourceCode(modulesFolderInSolution, solutionFile); + await AddAngularSourceCode(modulesFolderInSolution, solutionFile, module.Name, newTemplate || newProTemplate); } else { @@ -277,7 +277,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - private async Task AddAngularSourceCode(string modulesFolderInSolution, string solutionFilePath) + private async Task AddAngularSourceCode(string modulesFolderInSolution, string solutionFilePath, string moduleName, bool newTemplate) { var angularPath = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(solutionFilePath)), "angular"); @@ -287,6 +287,11 @@ namespace Volo.Abp.Cli.ProjectModification return; } + if (newTemplate) + { + MoveAngularFolderInNewTemplate(modulesFolderInSolution, moduleName); + } + await AngularModuleSourceCodeAdder.AddAsync(solutionFilePath, angularPath); } @@ -304,6 +309,30 @@ namespace Volo.Abp.Cli.ProjectModification } } + private static void MoveAngularFolderInNewTemplate(string modulesFolderInSolution, string moduleName) + { + var moduleAngularFolder = Path.Combine(modulesFolderInSolution, moduleName, "angular"); + + if (!Directory.Exists(moduleAngularFolder)) + { + return; + } + + var files = Directory.GetFiles(moduleAngularFolder); + var folders = Directory.GetDirectories(moduleAngularFolder); + + Directory.CreateDirectory(Path.Combine(moduleAngularFolder, moduleName)); + + foreach (var file in files) + { + File.Move(file, Path.Combine(moduleAngularFolder, moduleName, Path.GetFileName(file))); + } + foreach (var folder in folders) + { + Directory.Move(folder, Path.Combine(moduleAngularFolder, moduleName, Path.GetFileName(folder))); + } + } + private async Task DownloadSourceCodesToSolutionFolder(ModuleWithMastersInfo module, string modulesFolderInSolution, string version = null, bool newTemplate = false, bool newProTemplate = false)