ClrPlus.Scripting.MsBuild.Packaging.PackageScript.GetPackageNameAndFramework C# (CSharp) Method

GetPackageNameAndFramework() private method

private GetPackageNameAndFramework ( string key, string &packageName, string &frameworkVariant ) : void
key string
packageName string
frameworkVariant string
return void
        private void GetPackageNameAndFramework(string key, out string packageName, out string frameworkVariant )
        {
            key = NormalizeOuptutKey(key);

            var k = key.SplitToList(',', ' ');

            // if there are more than two items here, then this is not valid.
            packageName = "default";
            frameworkVariant = "native";

            switch (k.Count) {
                case 0:
                    // default name and framework.
                    break;

                case 1:
                    if (_nugetPackages.Keys.Contains(k[0])) {
                        packageName = k[0];
                    } else {
                        frameworkVariant = k[0];
                    }
                    break;
                case 2:
                    if (_nugetPackages.Keys.Contains(k[0])) {
                        packageName = k[0];
                        frameworkVariant = k[1];
                    } else {
                        if (_nugetPackages.Keys.Contains(k[1])) {
                            frameworkVariant = k[0];
                            packageName = k[1];
                        } else {
                            FailAlways(Event<SourceError>.Raise("AP104", SourceLocation.Unknowns, "Two parameters specified for project, neither of which is an output-package"));
                        }
                    }
                    break;
                default:
                    FailAlways(Event<SourceError>.Raise("AP105", SourceLocation.Unknowns, "Project references can only contain up to two pivots (output-package and framework)"));
                    break;
            }
        }