protected async Task ExportProjectPermissionsAsync(AzDoServices.Dtos.Project project) { var graphService = GetGraphService(); var groups = await graphService.ListGroupsInProjectAsync(project.Id); var manifest = BaseSchema.GetEmpty(project.Name, ManifestKind.Permission); manifest.Permissions = new List <PermissionSchemaManifest>(); foreach (var group in groups) { var memberCollection = await graphService.GetGroupMembersAsync(group.Descriptor); if (memberCollection != null && memberCollection.Members != null && memberCollection.Members.Any()) { var permissionManifest = PermissionSchemaManifest.Create(group.DisplayName); manifest.Permissions.Add(permissionManifest); await PopulateMembershipAsync(graphService, memberCollection, permissionManifest); } } if (manifest.Permissions.Any()) { await this.fs.WriteManifestAsync(project, ManifestKind.Permission, Serialize(manifest)); } }
public async Task WriteManifestAsync(AzDoServices.Dtos.Project project, ManifestKind manifest, string content) { var filePath = GetFilePath(project.Name, manifest); using var op = IcClient.BeginOperation($"Writing file [{filePath}] ..."); await EnsureProjectDirectory(project); if (File.Exists(filePath)) { op.Message("Deleting existing file..."); File.Delete(filePath); } await File.WriteAllTextAsync(filePath, content); }