Beispiel #1
0
        public async Task PersistAsync()
        {
            if (_initialized == null)
            {
                throw new InvalidOperationException("InitializeAsync hasn't been called");
            }

            if (_isDirty)
            {
                var fatBuffer = JsonSerializer.SerializeToUtf8Bytes(_initialized.Fat);
                var fatBlock  = await WriteBlockAsync(fatBuffer, fatBuffer.Length);

                var blocks = _initialized.Fat.GetAllBlocks()
                             .Prepend(fatBlock);

                await _storageFacade.WriteAsync(
                    _blobName,
                    blocks.Select(b => b.Id),
                    _initialized.Lease);

                _isDirty = false;
            }
        }