private static PackageVersionPair GetPackageVersionPair()

in src/PortingAssistant.Client.Analysis/Utils/CodeEntityModelToCodeEntities.cs [228:253]


        private static PackageVersionPair GetPackageVersionPair(Reference reference, ExternalReferences externalReferences)
        {
            var assemblyLength = reference?.Assembly?.Length;
            if (assemblyLength == null || assemblyLength == 0)
            {
                return null;
            }

            // Check if code entity is from Nuget
            var potentialNugetPackage = externalReferences?.NugetReferences?.Find((n) =>
               n.AssemblyLocation?.EndsWith(reference.Assembly + ".dll") == true || n.Identity.Equals(reference.Assembly));

            if (potentialNugetPackage == null)
            {
                potentialNugetPackage = externalReferences?.NugetDependencies?.Find((n) =>
               n.AssemblyLocation?.EndsWith(reference.Assembly + ".dll") == true || n.Identity.Equals(reference.Assembly));
            }
            PackageVersionPair nugetPackage = ReferenceToPackageVersionPair(potentialNugetPackage);

            // Check if code entity is from SDK
            var potentialSdk = externalReferences?.SdkReferences?.Find((s) =>
                s.AssemblyLocation?.EndsWith(reference.Assembly + ".dll") == true || s.Identity.Equals(reference.Assembly));
            PackageVersionPair sdk = ReferenceToPackageVersionPair(potentialSdk, PackageSourceType.SDK);

            return sdk ?? nugetPackage;
        }