From c817090cb8088fcc39acf2bacc81cf0d45e49aa1 Mon Sep 17 00:00:00 2001 From: Malavika Date: Fri, 21 Feb 2025 13:51:28 +0530 Subject: [PATCH] added the maintainablility and reliability issue fix --- src/LCT.PackageIdentifier/ConanProcessor.cs | 48 +++++++++---------- .../CreatorValidator.cs | 2 +- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/LCT.PackageIdentifier/ConanProcessor.cs b/src/LCT.PackageIdentifier/ConanProcessor.cs index c43c7cfd..47771f61 100644 --- a/src/LCT.PackageIdentifier/ConanProcessor.cs +++ b/src/LCT.PackageIdentifier/ConanProcessor.cs @@ -390,13 +390,20 @@ private static void GetPackagesForBom(ref List lstComponentForBOM, re throw new ArgumentNullException(nameof(nodePackages), "Dependency(requires) node name details not present in the root node."); } - ConanPackage package = nodePackages.Where(x => x.Id == "0").FirstOrDefault(); + ConanPackage package = nodePackages.FirstOrDefault(x => x.Id == "0"); List directDependencies = new List(); - if (package != null && package.Dependencies != null) { directDependencies.AddRange(package.Dependencies); } - if (package.DevDependencies != null) { directDependencies.AddRange(package.DevDependencies); } + if (package != null) + { + if (package.Dependencies != null) + { + directDependencies.AddRange(package.Dependencies); + } + if (package.DevDependencies != null) + { + directDependencies.AddRange(package.DevDependencies); + } + } - // Ignoring the root node as it is the package information node and we are anyways considering all - // nodes in the lock file. foreach (var component in nodePackages.Skip(1)) { BomCreator.bomKpiData.ComponentsinPackageLockJsonFile += 1; @@ -409,8 +416,6 @@ private static void GetPackagesForBom(ref List lstComponentForBOM, re } Component components = new Component(); - - // dev components are not ignored and added as a part of SBOM var buildNodeIds = GetBuildNodeIds(nodePackages); if (IsDevDependency(component, buildNodeIds, ref noOfDevDependent)) { @@ -418,40 +423,31 @@ private static void GetPackagesForBom(ref List lstComponentForBOM, re } string packageName = Convert.ToString(component.Reference); - if (packageName.Contains('/')) { - components.Name = packageName.Split(new char[] { '/', '@' })[0]; - components.Version = packageName.Split(new char[] { '/', '@' })[1]; + var parts = packageName.Split(new char[] { '/', '@' }); + components.Name = parts[0]; + components.Version = parts[1]; } else { components.Name = packageName; } - Property siemensFileName = new Property() - { - Name = Dataconstant.Cdx_Siemensfilename, - Value = component.Reference - }; - var isDirect = directDependencies.Contains(component.Id) ? "true" : "false"; - Property siemensDirect = new Property() - { - Name = Dataconstant.Cdx_SiemensDirect, - Value = isDirect - }; + components.Properties = new List + { + isdev, + new Property { Name = Dataconstant.Cdx_Siemensfilename, Value = component.Reference }, + new Property { Name = Dataconstant.Cdx_SiemensDirect, Value = directDependencies.Contains(component.Id) ? "true" : "false" } + }; components.Type = Component.Classification.Library; components.Purl = $"{ApiConstant.ConanExternalID}{components.Name}@{components.Version}"; components.BomRef = $"{ApiConstant.ConanExternalID}{components.Name}@{components.Version}"; - components.Properties = new List(); - components.Properties.Add(isdev); - components.Properties.Add(siemensDirect); - components.Properties.Add(siemensFileName); + lstComponentForBOM.Add(components); } } - private static List GetBuildNodeIds(List nodePackages) { return nodePackages diff --git a/src/LCT.SW360PackageCreator/CreatorValidator.cs b/src/LCT.SW360PackageCreator/CreatorValidator.cs index 333923fa..9151ab7c 100644 --- a/src/LCT.SW360PackageCreator/CreatorValidator.cs +++ b/src/LCT.SW360PackageCreator/CreatorValidator.cs @@ -85,7 +85,7 @@ public static async Task TriggerFossologyValidation(CommonAppSettings appSetting else { int currentPage = page; - int totalPages = (int)(releaseResponse?.Page?.TotalPages ?? 0); + int totalPages = releaseResponse?.Page?.TotalPages ?? 0; if (currentPage < totalPages - 1) { page = currentPage + 1;