public Version Detect()

in src/AWS.Deploy.Orchestration/CDK/CDKVersionDetector.cs [38:76]


        public Version Detect(string csprojPath)
        {
            var content = File.ReadAllText(csprojPath);
            var document = XDocument.Parse(content);
            var cdkVersion = Constants.CDK.DefaultCDKVersion;

            foreach (var node in document.DescendantNodes())
            {
                if (node is not XElement element || element.Name.ToString() != "PackageReference")
                {
                    continue;
                }

                var includeAttribute = element.Attribute("Include");
                if (includeAttribute == null)
                {
                    continue;
                }

                if (!includeAttribute.Value.Equals(AMAZON_CDK_PACKAGE_REFERENCE_PREFIX) && !includeAttribute.Value.StartsWith($"{AMAZON_CDK_PACKAGE_REFERENCE_PREFIX}."))
                {
                    continue;
                }

                var versionAttribute = element.Attribute("Version");
                if (versionAttribute == null)
                {
                    continue;
                }

                var version = new Version(versionAttribute.Value);
                if (version > cdkVersion)
                {
                    cdkVersion = version;
                }
            }

            return cdkVersion;
        }