public async Task <bool> AddFile(string name, Func <Task <Stream> > binaryData) { if (await _context.FileInfos.FindAsync(name) != null) { return(false); } var info = new FileBlobInfoEntity { FileName = name, CreationTime = DateTime.Now }; var blob = new FileBlobEntity { Key = name }; using var input = await binaryData(); using var output = new MemoryStream(); await Compressor.Compressor.CompressFileLzma(input, output); blob.Data = output.ToArray(); info.Size = blob.Data.LongLength; await _context.AddRangeAsync(info, blob); return(true); }