private async Task <IResourceResponse <DocumentCollection> > CreateDocumentCollectionIfNotExists(string databaseName, string collectionName) { if (collection.ContainsKey(collectionName)) { return(null); } await CreateDatabaseIfNotExists(databaseName); DocumentCollection collectionDefinition = new DocumentCollection(); collectionDefinition.Id = collectionName; collectionDefinition.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String) { Precision = -1 }); if (!fixeddb) { collectionDefinition.PartitionKey.Paths.Add("/id"); } var x = await client.CreateDocumentCollectionIfNotExistsAsync( UriFactory.CreateDatabaseUri(databaseName), collectionDefinition, new RequestOptions { OfferThroughput = int.Parse(_secresolve.GetConfiguration("FHIRDBTHROUHPUT", "2000")) }); collection.TryAdd(collectionName, collectionName); return(x); }
public AzureBlobHistoryStore() { _secresolve = new SecretResolver(); CONTAINER = _secresolve.GetConfiguration("FHIRDB", "FHIR3").ToLower() + "-history"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_secresolve.GetSecret("StorageConnectionString").Result); // Create the table if it doesn't exist. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); blob = blobClient.GetContainerReference(CONTAINER); blob.CreateIfNotExists(); }
public AzureDocDBFHIRStore(IFHIRHistoryStore history) { _secresolve = new SecretResolver(); this.client = new DocumentClient(new Uri(_secresolve.GetSecret("DBStorageEndPointUri").Result), _secresolve.GetSecret("DBStoragePrimaryKey").Result, new ConnectionPolicy { ConnectionMode = ConnectionMode.Direct, ConnectionProtocol = Protocol.Tcp }); historystore = history; ParserSettings ps = new ParserSettings(); ps.AcceptUnknownMembers = true; ps.AllowUnrecognizedEnums = true; parser = new FhirJsonParser(ps); string DBSTORAGE = _secresolve.GetConfiguration("FHIRDBStorage"); fixeddb = (DBSTORAGE == null || DBSTORAGE.ToUpper().StartsWith("F")); int.TryParse(_secresolve.GetConfiguration("FHIRMAXDOCSIZE", "500000"), out imaxdocsize); DBName = _secresolve.GetConfiguration("FHIRDB", "FHIR3"); }
//TODO: Inject Storage Implementation public ResourceController(IFHIRStore store) { _secresolve = new SecretResolver(); parsemode = _secresolve.GetConfiguration("FHIRParserMode", "open"); _strict = (parsemode == null || parsemode.Equals("strict", StringComparison.CurrentCultureIgnoreCase) ? true : false); this.storage = store; parsersettings = new ParserSettings(); parsersettings.AcceptUnknownMembers = !_strict; parsersettings.AllowUnrecognizedEnums = !_strict; jsonparser = new FhirJsonParser(parsersettings); xmlparser = new FhirXmlParser(parsersettings); }