public async Task <Document> AddBlobDocumentAsync(string databaseName, string collectionName, string nodeId, BlobModel newBlob) { using (var client = new DocumentClient(new Uri(Settings.Default.DocumentDBURI), Settings.Default.DocumentDBPrimaryKey)) { BlobDocument blobDocument; try { Uri collUri = UriFactory.CreateDocumentCollectionUri(Settings.Default.DocumenDBDatabaseName, Settings.Default.DocumentDBCollectionName); blobDocument = client.CreateDocumentQuery <BlobDocument>(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName)).Where(b => b.NodeId == nodeId).ToList().First(); blobDocument.Blobs.Add(newBlob); var response = await client.UpsertDocumentAsync(collUri, blobDocument); return(response.Resource); } catch (InvalidOperationException) { blobDocument = new BlobDocument() { NodeId = nodeId, Blobs = new List <BlobModel>() { newBlob } }; var response1 = await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseName, collectionName), blobDocument); return(response1.Resource); } } }
public Guid UploadDocument(Guid userId, string name, string mimeType, Stream document, long length) { var id = new DocumentIdentifier(userId, Guid.NewGuid()); var doc = new BlobDocument(id, name, CreateBlob(id)); doc.UpdateMetadata(); doc.Blob.Properties.ContentType = mimeType; doc.Blob.UploadFromStream(document); return id.DocumentId; }