Beispiel #1
0
 public async Task SynchronizeAssetsAsync(IEnumerable <Checksum> checksums, CancellationToken cancellationToken)
 {
     // if caller wants to get different kind of assets at once, he needs to first sync asserts and use
     // GetAssetAsync to get those.
     var syncer = new ChecksumSynchronizer(this);
     await syncer.SynchronizeAssetsAsync(checksums, cancellationToken).ConfigureAwait(false);
 }
Beispiel #2
0
        public async Task <List <ValueTuple <Checksum, T> > > GetAssetsAsync <T>(
            IEnumerable <Checksum> checksums,
            CancellationToken cancellationToken
            )
        {
            // this only works when caller wants to get same kind of assets at once

            // bulk synchronize checksums first
            var syncer = new ChecksumSynchronizer(this);
            await syncer.SynchronizeAssetsAsync(checksums, cancellationToken).ConfigureAwait(false);

            var list = new List <ValueTuple <Checksum, T> >();

            foreach (var checksum in checksums)
            {
                list.Add(
                    ValueTuple.Create(
                        checksum,
                        await GetAssetAsync <T>(checksum, cancellationToken).ConfigureAwait(false)
                        )
                    );
            }

            return(list);
        }