From 91170469331c6c3dd1b76266a44a7685499cf9c4 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 20 Dec 2021 13:58:19 +0300 Subject: [PATCH] Studio module installing: Allow null analyzes --- .../Abp/Studio/Package/PackageInfoWithAnalyze.cs | 6 +++--- .../Steps/PackageReferencingStep.cs | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs index 6b4ced569d..bdb1cd3178 100644 --- a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs @@ -14,14 +14,14 @@ public class PackageInfoWithAnalyze [CanBeNull] public string Role { get; } - [NotNull] + [CanBeNull] public PackageModel Analyze { get; } - public PackageInfoWithAnalyze([NotNull] string path, [CanBeNull] string role, [NotNull] PackageModel analyze) + public PackageInfoWithAnalyze([NotNull] string path, [CanBeNull] string role, [CanBeNull] PackageModel analyze) { Path = Check.NotNullOrWhiteSpace(path, nameof(path)); Name = PackageHelper.GetNameFromPath(path); Role = role; - Analyze = Check.NotNull(analyze, nameof(analyze)); + Analyze = analyze; } } diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs index 02ba1063fb..3d68a1177d 100644 --- a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs @@ -25,8 +25,12 @@ public class PackageReferencingStep : ModuleInstallingPipelineStep await AddReferenceAsync(context, targetPackage, referencePackage); var targetAbpModulePath = FindAbpModuleFile(targetPackage.Path); + var referencePackageAbpModuleName = FindAbpModuleName(referencePackage); - await _abpModuleFileManager.AddDependency(targetAbpModulePath, FindAbpModuleName(referencePackage)); + if (targetAbpModulePath != null && referencePackageAbpModuleName != null) + { + await _abpModuleFileManager.AddDependency(targetAbpModulePath, referencePackageAbpModuleName); + } } } } @@ -72,9 +76,14 @@ public class PackageReferencingStep : ModuleInstallingPipelineStep private string FindAbpModuleName(PackageInfoWithAnalyze package) { - var abpModuleModel = package.Analyze.Contents.Where(y => + var abpModuleModel = package.Analyze?.Contents.Where(y => y.ContentType == AbpModuleModel.ContentTypeName - ).Cast().First(); + ).Cast().FirstOrDefault(); + + if (abpModuleModel == null) + { + return null; + } return abpModuleModel.Namespace + "." + abpModuleModel.Name; }