await foreach()

in src/ccf/ccf-provider-common/AzFileShare.cs [429:471]


        await foreach (FileShareResource fsItem in response)
        {
            numberOfShares++;

            // Get or else Metadata is not populated.
            FileShareResource fileShare = await fsItem.GetAsync();
            if (!fileShare.Data.Metadata.TryGetValue(CcfNetworkNameKey, out var value) ||
                value != networkName)
            {
                continue;
            }

            progress.Report(
                $"Inspecting file share '{fileShare.Data.Name}' for ledgers. " +
                $"committedLedgerFilesOnly: {committedLedgerFilesOnly}");
            var share = await GetShareClient(fileShare.Data.Name, providerConfig);
            var dir = share.GetDirectoryClient("ledger");
            if (await dir.ExistsAsync())
            {
                await foreach (ShareFileItem item in dir.GetFilesAndDirectoriesAsync())
                {
                    progress.Report($"Found file {item.Name} on file share " +
                        $"'{fileShare.Data.Name}'.");

                    // fileName = ledger_13_14.committed or ledger_12.
                    var fileName = item.Name;
                    if (fileName.StartsWith("ledger_"))
                    {
                        if (committedLedgerFilesOnly)
                        {
                            if (fileName.EndsWith(".committed"))
                            {
                                sharesWithLedgers.Add(fileShare);
                            }
                        }
                        else
                        {
                            sharesWithLedgers.Add(fileShare);
                        }
                    }
                }
            }
        }