示例#1
0
        private async Task EnsureBuildFoldersAsync(ProjectManifest manifest,
                                                   Waddle.AdoConnectionFactory factory, Waddle.Dtos.Project project)
        {
            if (manifest.BuildFolders != null && manifest.BuildFolders.Any())
            {
                var buildService = factory.GetBuildService();
                var buildPaths   = await buildService.ListFoldersAsync(project.Id);

                foreach (var bp in manifest.BuildFolders)
                {
                    var existingItem = buildPaths.Value
                                       .FirstOrDefault(p => p.Path.Replace("\\", "/").Equals(bp.Path, StringComparison.OrdinalIgnoreCase));

                    if (existingItem == null)
                    {
                        existingItem = await buildService.CreateFolderAsync(project.Id, bp.Path);
                    }
                    Logger.StatusBegin($"Creating permissions {bp.Path}...");
                    await ProvisionBuildPathPermissionsAsync(factory, project, bp, existingItem);

                    Logger.StatusEndSuccess("Succeed");
                }
            }
        }