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); }
private async Task FillDataBase(TestingObject <FileDatabase> testObject) { var context = testObject.GetDependency <FilesDbContext>(); _big = Properties.Resources.bm19_07777_Covers_FB_001_Einzelform_Umschlagen_LACK_pdf; _small = Properties.Resources.bm19_07777_Covers_FB_001_Einzelform_Umschlagen_LACK_tif; _bigSize = _big.Length; _smallSize = _small.Length; _databaseSize = _bigSize + _smallSize; var oldEi = new FileBlobInfoEntity { CreationTime = new DateTime(2015, 1, 1), FileName = "Old", Size = _bigSize }; var newEi = new FileBlobInfoEntity { CreationTime = new DateTime(2017, 1, 1), FileName = "New", Size = _smallSize }; var oldE = new FileBlobEntity { Data = _big, Key = OldConst }; var newE = new FileBlobEntity { Data = _small, Key = NewConst }; await context.FileInfos.AddRangeAsync(oldEi, newEi); await context.Blobs.AddRangeAsync(oldE, newE); }