Browse Source

Merge branch 'rel-4.0' into dev

pull/6565/head
Yunus Emre Kalkan 6 years ago
parent
commit
687861fb33
  1. 62
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

62
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

@ -125,8 +125,7 @@ namespace Volo.Abp.Cli.ProjectModification
string[] projectFiles) string[] projectFiles)
{ {
var moduleDirectory = Path.Combine(solutionDirectory, "modules", module.Name); var moduleDirectory = Path.Combine(solutionDirectory, "modules", module.Name);
var moduleSolutionFile = var moduleSolutionFile = Directory.GetFiles(moduleDirectory, "*.sln", SearchOption.TopDirectoryOnly).First();
Directory.GetFiles(moduleDirectory, "*.sln", SearchOption.TopDirectoryOnly).First();
var isProjectTiered = await IsProjectTiered(projectFiles); var isProjectTiered = await IsProjectTiered(projectFiles);
if (!projectFiles.Any(p => p.EndsWith(".Blazor.csproj"))) if (!projectFiles.Any(p => p.EndsWith(".Blazor.csproj")))
@ -149,6 +148,7 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.EntityFrameworkCore, isProjectTiered); await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.EntityFrameworkCore, isProjectTiered);
await RemoveProjectByPostFix(module, moduleSolutionFile, "test", ".EntityFrameworkCore.Tests"); await RemoveProjectByPostFix(module, moduleSolutionFile, "test", ".EntityFrameworkCore.Tests");
await ChangeDomainTestReferenceToMongoDB(module, moduleSolutionFile);
} }
} }
@ -183,12 +183,27 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
var srcPath = Path.Combine(Path.GetDirectoryName(moduleSolutionFile), targetFolder); var srcPath = Path.Combine(Path.GetDirectoryName(moduleSolutionFile), targetFolder);
var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d=> d.EndsWith(postFix)); var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d=> d.EndsWith(postFix));
await SolutionFileModifier.RemoveProjectFromSolutionFileAsync(moduleSolutionFile, Path.GetDirectoryName(projectFolderPath)); await SolutionFileModifier.RemoveProjectFromSolutionFileAsync(moduleSolutionFile, new DirectoryInfo(projectFolderPath).Name);
if (Directory.Exists(projectFolderPath)) if (Directory.Exists(projectFolderPath))
{ {
Directory.Delete(projectFolderPath, true); Directory.Delete(projectFolderPath, true);
} }
}
private async Task ChangeDomainTestReferenceToMongoDB(ModuleWithMastersInfo module, string moduleSolutionFile)
{
var srcPath = Path.Combine(Path.GetDirectoryName(moduleSolutionFile), "test");
var projectFolderPath = Directory.GetDirectories(srcPath).FirstOrDefault(d=> d.EndsWith("Domain.Tests"));
var csprojFile = Directory.GetFiles(projectFolderPath).First(p => p.EndsWith(".csproj"));
var moduleFile = Directory.GetFiles(projectFolderPath).First(p => p.EndsWith("DomainTestModule.cs"));
File.WriteAllText(csprojFile, File.ReadAllText(csprojFile).Replace("EntityFrameworkCore","MongoDB"));
File.WriteAllText(moduleFile, File.ReadAllText(moduleFile)
.Replace(".EntityFrameworkCore;",".MongoDB;")
.Replace("EntityFrameworkCoreTestModule","MongoDbTestModule"));
} }
private async Task AddAngularPackages(string solutionFilePath, ModuleWithMastersInfo module) private async Task AddAngularPackages(string solutionFilePath, ModuleWithMastersInfo module)
@ -261,7 +276,9 @@ namespace Volo.Abp.Cli.ProjectModification
); );
} }
await DeleteAppAndDemoFolderAsync(targetModuleFolder); await DeleteRedundantHostProjects(targetModuleFolder,"app");
await DeleteRedundantHostProjects(targetModuleFolder,"demo");
await DeleteRedundantHostProjects(targetModuleFolder,"host");
if (module.MasterModuleInfos == null) if (module.MasterModuleInfos == null)
{ {
@ -286,24 +303,22 @@ namespace Volo.Abp.Cli.ProjectModification
await NewCommand.ExecuteAsync(args); await NewCommand.ExecuteAsync(args);
} }
private async Task DeleteAppAndDemoFolderAsync(string targetModuleFolder) private async Task DeleteRedundantHostProjects(string targetModuleFolder, string folderName)
{ {
var appFolder = Path.Combine(targetModuleFolder, "app"); var moduleSolutionFile = Directory.GetFiles(targetModuleFolder, "*.sln", SearchOption.TopDirectoryOnly).First();
if (Directory.Exists(appFolder))
{
Directory.Delete(appFolder, true);
}
var demoFolder = Path.Combine(targetModuleFolder, "demo"); var folder = Path.Combine(targetModuleFolder, folderName);
if (Directory.Exists(demoFolder)) if (Directory.Exists(folder))
{ {
Directory.Delete(demoFolder, true); var projects = Directory.GetDirectories(folder);
}
var hostFolder = Path.Combine(targetModuleFolder, "host"); foreach (var project in projects)
if (Directory.Exists(hostFolder)) {
{ await SolutionFileModifier.RemoveProjectFromSolutionFileAsync(moduleSolutionFile,
Directory.Delete(hostFolder, true); new DirectoryInfo(project).Name);
}
Directory.Delete(folder, true);
} }
} }
@ -449,14 +464,15 @@ namespace Volo.Abp.Cli.ProjectModification
private async Task<ModuleWithMastersInfo> GetEmptyModuleProjectInfoAsync(string moduleName, private async Task<ModuleWithMastersInfo> GetEmptyModuleProjectInfoAsync(string moduleName,
bool newProTemplate = false) bool newProTemplate = false)
{ {
var module = new ModuleWithMastersInfo(); var module = new ModuleWithMastersInfo
{
Name = moduleName,
DisplayName = moduleName,
MasterModuleInfos = new List<ModuleWithMastersInfo>()
};
var moduleProjectName = module.Name.Split('.').Last(); var moduleProjectName = module.Name.Split('.').Last();
module.Name = moduleName;
module.DisplayName = moduleName;
module.EfCoreConfigureMethodName = $"{module.Name}.EntityFrameworkCore:Configure{moduleProjectName}"; module.EfCoreConfigureMethodName = $"{module.Name}.EntityFrameworkCore:Configure{moduleProjectName}";
module.MasterModuleInfos = new List<ModuleWithMastersInfo>();
module.NugetPackages = new List<NugetPackageInfo> module.NugetPackages = new List<NugetPackageInfo>
{ {

Loading…
Cancel
Save