From 607ada4d4462a74daddb987a7c0ca28f6bb79c2a Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 15 May 2019 13:05:39 +0300 Subject: [PATCH] added DerivedClassFinder and removed AbpModuleClassFinder --- .../{AbpModuleClassFinder.cs => DerivedClassFinder.cs} | 10 +++++----- .../ProjectModification/ProjectNugetPackageAdder.cs | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) rename framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/{AbpModuleClassFinder.cs => DerivedClassFinder.cs} (75%) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AbpModuleClassFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs similarity index 75% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AbpModuleClassFinder.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs index 0cdcc89fff..bf11e0af65 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/AbpModuleClassFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/DerivedClassFinder.cs @@ -7,9 +7,9 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.Cli.ProjectModification { - public class AbpModuleClassFinder : ITransientDependency + public class DerivedClassFinder : ITransientDependency { - public virtual List Find(string csprojFilePath) + public virtual List Find(string csprojFilePath, string baseClass) { var moduleFilePaths = new List(); @@ -20,7 +20,7 @@ namespace Volo.Abp.Cli.ProjectModification foreach (var csFile in csFiles) { - if (IsDerivedFromAbpModule(csFile)) + if (IsDerivedFromAbpModule(csFile, baseClass)) { moduleFilePaths.Add(csFile); } @@ -29,14 +29,14 @@ namespace Volo.Abp.Cli.ProjectModification return moduleFilePaths; } - private bool IsDerivedFromAbpModule(string csFile) + protected bool IsDerivedFromAbpModule(string csFile, string baseClass) { var root = CSharpSyntaxTree.ParseText(File.ReadAllText(csFile)).GetRoot(); var namespaceSyntax = root.DescendantNodes().OfType().First(); var classDeclaration = (namespaceSyntax.DescendantNodes().OfType()).First(); return classDeclaration.BaseList?.Types - .Any(t => t.ToString().Contains("AbpModule")) ?? false; + .Any(t => t.ToString().Equals(baseClass)) ?? false; } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 33373289ec..d12e9e2f4c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -20,13 +20,13 @@ namespace Volo.Abp.Cli.ProjectModification protected IJsonSerializer JsonSerializer { get; } protected ProjectNpmPackageAdder NpmPackageAdder { get; } - protected AbpModuleClassFinder ModuleClassFinder { get; } + protected DerivedClassFinder ModuleClassFinder { get; } protected ModuleClassDependcyAdder ModuleClassDependcyAdder { get; } public ProjectNugetPackageAdder( IJsonSerializer jsonSerializer, ProjectNpmPackageAdder npmPackageAdder, - AbpModuleClassFinder moduleClassFinder, + DerivedClassFinder moduleClassFinder, ModuleClassDependcyAdder moduleClassDependcyAdder) { JsonSerializer = jsonSerializer; @@ -52,7 +52,7 @@ namespace Volo.Abp.Cli.ProjectModification CmdHelper.Run("dotnet", "add package " + package.Name); - var moduleFiles = ModuleClassFinder.Find(projectFile); + var moduleFiles = ModuleClassFinder.Find(projectFile, "AbpModule"); if (moduleFiles.Count == 0) { throw new CliUsageException($"Could not find a class derived from AbpModule in the project {projectFile}");