From 71c6b71ebd330e08b3008dc16f516cfd404389ea Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 29 Sep 2021 13:51:55 +0300 Subject: [PATCH] Created ISolutionFileModuleAdder --- .../Solution/ISolutionFileModuleAdder.cs | 9 ++++ .../Solution/SolutionFileModuleAdder.cs | 42 +++++++++++++++++++ .../Steps/AddToSolutionFileStep.cs | 28 ++----------- 3 files changed, 54 insertions(+), 25 deletions(-) create mode 100644 studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs create mode 100644 studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs new file mode 100644 index 0000000000..4f51330db7 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Solution +{ + public interface ISolutionFileModuleAdder + { + Task AddAsync(string TargetModule, string ModuleName); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs new file mode 100644 index 0000000000..cafd0f9281 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Modules; + +namespace Volo.Abp.Studio.Solution +{ + public class SolutionFileModuleAdder : ISolutionFileModuleAdder, ITransientDependency + { + private readonly IDotnetSlnFileModifierService _dotnetSlnFileModifierService; + + public SolutionFileModuleAdder(IDotnetSlnFileModifierService dotnetSlnFileModifierService) + { + _dotnetSlnFileModifierService = dotnetSlnFileModifierService; + } + + public async Task AddAsync(string TargetModule, string ModuleName) + { + var targetFolder = Path.Combine(Path.GetDirectoryName(TargetModule), "modules", ModuleName);; + var slnFile = TargetModule.RemovePostFix(ModuleConsts.FileExtension) + ".sln"; + var moduleSrcFolder = Path.Combine(targetFolder, "src"); + var moduleTestFolder = Path.Combine(targetFolder, "test"); + + await AddProjectsUnderDirectoryToSolutionFile(slnFile, moduleSrcFolder, $"modules/{ModuleName}"); + await AddProjectsUnderDirectoryToSolutionFile(slnFile, moduleTestFolder, $"test/{ModuleName}.Tests"); + } + + private async Task AddProjectsUnderDirectoryToSolutionFile( + string slnFile, + string directory, + string slnTargetFolder) + { + var projects = Directory.GetFiles(directory, "*.csproj", SearchOption.AllDirectories); + + foreach (var project in projects) + { + await _dotnetSlnFileModifierService.AddProjectAsync(slnFile, project, slnTargetFolder); + } + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs index 18db782c5d..2739a62eaf 100644 --- a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs @@ -1,8 +1,5 @@ -using System; -using System.IO; -using System.Threading.Tasks; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Studio.Modules; using Volo.Abp.Studio.Solution; namespace Volo.Abp.Studio.ModuleInstalling.Steps @@ -11,28 +8,9 @@ namespace Volo.Abp.Studio.ModuleInstalling.Steps { public override async Task ExecuteAsync(ModuleInstallingContext context) { - var slnFile = context.TargetModule.RemovePostFix(ModuleConsts.FileExtension) + ".sln"; - var moduleSrcFolder = Path.Combine(context.GetTargetSourceCodeFolder(), "src"); - var moduleTestFolder = Path.Combine(context.GetTargetSourceCodeFolder(), "test"); + var _solutionFileModuleAdder = context.ServiceProvider.GetRequiredService(); - await AddProjectsUnderDirectoryToSolutionFile(context, slnFile, moduleSrcFolder, $"modules/{context.ModuleName}"); - await AddProjectsUnderDirectoryToSolutionFile(context, slnFile, moduleTestFolder, $"test/{context.ModuleName}.Tests"); - } - - private static async Task AddProjectsUnderDirectoryToSolutionFile( - ModuleInstallingContext context, - string slnFile, - string directory, - string slnTargetFolder) - { - var _dotnetSlnFileModifier = context.ServiceProvider.GetRequiredService(); - - var projects = Directory.GetFiles(directory, "*.csproj", SearchOption.AllDirectories); - - foreach (var project in projects) - { - await _dotnetSlnFileModifier.AddProjectAsync(slnFile, project, slnTargetFolder); - } + await _solutionFileModuleAdder.AddAsync(context.TargetModule, context.ModuleName); } } }