コード例 #1
0
        static Package FindOrCreateExecutionPackage(RestClient client, Root root, Project project, Options options, SystemInfo systemInfo)
        {
            Package scriptPackage = client.GetExecutionPackageByProjectAndName(root, project.Id, options.ExecutionPackage);

            if (scriptPackage == null)
            {
                // let's try to create all the packages in the path

                string[] parts = options.ExecutionPackage.Split(new[] {systemInfo.PackagePathSeparator}, StringSplitOptions.RemoveEmptyEntries);

                Package parent = client.GetExecutionPackageByProjectAndName(root, project.Id, parts[0]) ?? client.CreateExecutionPackageForProject(root, project.Id, parts[0]);

                for (int i = 1; i < parts.Length; i++)
                {
                    Package match = client.GetExecutionPackageByParentPackageAndName(root, parent.Id, parts[i]) ?? client.CreateExecutionPackageForParentProject(root, parent.Id, parts[i]);

                    parent = match;
                }

                scriptPackage = parent;
            }

            return scriptPackage;
        }