public DatabaseIdsCache(DocumentDatabase documentDatabase, ILog log) { this.documentDatabase = documentDatabase; this.log = log; databaseIdsCacheDocument = GetCachedDocument(); if (databaseIdsCacheDocument == null) { databaseIdsCacheDocument = new DatabaseIdsCacheDocument(); documentDatabase.Documents.Put(CacheDocumentId, null, RavenJObject.FromObject(databaseIdsCacheDocument), new RavenJObject(), null); } saveDocumentTimer = new Timer(SaveDocument, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(15)); }
private DatabaseIdsCacheDocument GetCachedDocument() { var jsonDocument = documentDatabase.Documents.Get(CacheDocumentId, null); if (jsonDocument == null) { return(null); } DatabaseIdsCacheDocument cachedDocument = null; try { cachedDocument = jsonDocument.DataAsJson.JsonDeserialization <DatabaseIdsCacheDocument>(); } catch (Exception e) { log.WarnException("Failed to get replication destinations database ids, creating a new one", e); } return(cachedDocument); }