public SetConfigurationDocumentResponse SetConfigurationDocument(SetConfigurationDocumentRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DocumentKey, "DocumentKey"); CheckWriteAccess(request.DocumentKey); var broker = PersistenceContext.GetBroker <IConfigurationDocumentBroker>(); var criteria = BuildDocumentKeyCriteria(request.DocumentKey); var documents = broker.Find(criteria, new SearchResultPage(0, 1), new EntityFindOptions { Cache = true }); var document = CollectionUtils.FirstElement(documents); if (document != null) { document.Body.DocumentText = request.Content; // update document modified time document.Body.ModifiedTime = Platform.Time; } else { // no saved document, create new document = NewDocument(request.DocumentKey); document.Body.DocumentText = request.Content; PersistenceContext.Lock(document, DirtyState.New); } return(new SetConfigurationDocumentResponse()); }
public void TestCacheConfigurationDocument() { var cache = new TestCacheClient(); cache.ClearCache(); var documentKey = new ConfigurationDocumentKey("Test", new Version(1, 0), null, ""); var cacheKey = ((IDefinesCacheKey)documentKey).GetCacheKey(); var service = new TestConfigurationService(); object request = new GetConfigurationDocumentRequest(documentKey); object response = new GetConfigurationDocumentResponse(documentKey, DateTime.Now, DateTime.Now, "Test"); var invocation = new TestInvocation { Target = service, Method = typeof(IApplicationConfigurationReadService).GetMethod("GetConfigurationDocument", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public), TargetType = typeof(IApplicationConfigurationReadService), Request = request, Response = response }; var directive = new ResponseCachingDirective(true, TimeSpan.FromMinutes(1), ResponseCachingSite.Server); var advice = new ConcreteResponseCachingAdvice(directive); advice.Intercept(invocation); var cacheEntry = cache.Get(cacheKey, new CacheGetOptions("")); Assert.IsNotNull(cacheEntry); Assert.AreEqual(response, cacheEntry); request = new SetConfigurationDocumentRequest(documentKey, "Test"); response = new SetConfigurationDocumentResponse(); invocation = new TestInvocation { Target = service, Method = typeof(IConfigurationService).GetMethod("SetConfigurationDocument", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public), TargetType = typeof(IConfigurationService), Request = request, Response = response }; advice = new ConcreteResponseCachingAdvice(null); advice.Intercept(invocation); cacheEntry = cache.Get(cacheKey, new CacheGetOptions("")); Assert.IsNull(cacheEntry); }
public SetConfigurationDocumentResponse SetConfigurationDocument(SetConfigurationDocumentRequest request) { throw new NotImplementedException(); }