Alquimiaware.NuGetUnity.TargetDropper.ChoosePackageTarget C# (CSharp) Method

ChoosePackageTarget() private method

private ChoosePackageTarget ( Package package, TargetPreferences prefs ) : TargetLib
package Package
prefs TargetPreferences
return TargetLib
        private TargetLib ChoosePackageTarget(Package package, TargetPreferences prefs)
        {
            TargetLib chosenTarget = null;
            foreach (var preferedTarget in prefs.DecreasingPriorityTargets)
            {
                chosenTarget = package.TargetLibs
                    .FirstOrDefault(t => t.Name == preferedTarget);

                if (chosenTarget != null)
                    break;
            }

            // try fallback
            if (chosenTarget == null)
            {
                chosenTarget = package.TargetLibs
                    .FirstOrDefault(t => t.Name == prefs.FallbackTarget);

                if (chosenTarget != null)
                    Debug.LogWarningFormat(
                        "Package: '{0}' Installed fallback target: '{1}'. "
                       + "It's not guaranteed to work",
                        package.Name,
                        prefs.FallbackTarget);
            }

            if (chosenTarget == null)
            {
                // no other things to try
                // installation failed
                Debug.LogErrorFormat("Package: '{0}' Not Installed. No matching target.",
                    package.Name);
            }

            return chosenTarget;
        }