private async Task EnsureReleaseFoldersAsync(ProjectManifest manifest, Waddle.AdoConnectionFactory factory, Waddle.Dtos.Project project) { if (manifest.ReleaseFolders != null && manifest.ReleaseFolders.Any()) { var releaseService = factory.GetReleaseService(); var releasePaths = await releaseService.ListFoldersAsync(project.Id); foreach (var rp in manifest.ReleaseFolders) { var existingItem = releasePaths.Value .FirstOrDefault(p => p.Path.Replace("\\", "/").Equals(rp.Path, StringComparison.OrdinalIgnoreCase)); if (existingItem == null) { existingItem = await releaseService.CreateFolderAsync(project.Id, rp.Path); } Logger.StatusBegin($"Creating permissions {rp.Path}..."); await ProvisionReleasePathPermissionsAsync(factory, project, rp, existingItem); Logger.StatusEndSuccess("Succeed"); } } }