public CosmosContext(CosmosConfig config) { _cache = new Cache("Cosmos", config.CacheMb); var retriesOn429Throttling = 1; // Number of retries before failing processing when provisioned RU/s limit in CosmosDb is breached var timeout = TimeSpan.FromSeconds(5); // Timeout applied per request to CosmosDb, including retry attempts var discovery = Discovery.ConnectionString.NewConnectionString(config.ConnectionStringWithUriAndKey); _connect = async() => { var connector = new CosmosStoreConnector(discovery, timeout, retriesOn429Throttling, timeout, config.Mode); _store = await Connect(connector, config.Database, config.Container); }; }
static async Task <CosmosStoreContext> Connect(CosmosStoreConnector connector, string databaseId, string containerId) { var storeClient = await FSharpAsync.StartAsTask( CosmosStoreClient.Connect( FuncConvert.FromFunc <(string, string)[], FSharpAsync <CosmosClient> >(connector.CreateAndInitialize),