Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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;
        }