/// <summary> /// Insert a new file content inside datafile in _files collection /// </summary> public LiteFileInfo Upload(LiteFileInfo file, Stream stream) { if (file == null) { throw new ArgumentNullException("id"); } if (stream == null) { throw new ArgumentNullException("stream"); } file.UploadDate = DateTime.Now; // insert file in _files collections with 0 file length _engine.Insert(FILES, new BsonDocument[] { file.AsDocument }); // for each chunk, insert as a chunk document foreach (var chunk in file.CreateChunks(stream)) { _engine.Insert(CHUNKS, new BsonDocument[] { chunk }); } // update fileLength/chunks to confirm full file length stored in disk _engine.Update(FILES, new BsonDocument[] { file.AsDocument }); return(file); }