public async Task SaveAsync(Models.AdminMenu tree) { if (tree.IsReadonly) { throw new ArgumentException("The object is read-only"); } var adminMenuList = await LoadAdminMenuListAsync(); var preexisting = adminMenuList.AdminMenu.FirstOrDefault(x => String.Equals(x.Id, tree.Id, StringComparison.OrdinalIgnoreCase)); // it's new? add it if (preexisting == null) { adminMenuList.AdminMenu.Add(tree); } else // not new: replace it { var index = adminMenuList.AdminMenu.IndexOf(preexisting); adminMenuList.AdminMenu[index] = tree; } _session.Save(adminMenuList); _signal.DeferredSignalToken(AdminMenuCacheKey); }
public async Task RemoveTemplateAsync(string name) { var document = await LoadTemplatesDocumentAsync(); document.Templates.Remove(name); _session.Save(document); _signal.DeferredSignalToken(CacheKey); }
public async Task DeleteQueryAsync(string name) { var existing = await LoadDocumentAsync(); existing.Queries.Remove(name); _session.Save(existing); _signal.DeferredSignalToken(QueriesDocumentCacheKey); return; }
public async Task DeleteSitemapAsync(string sitemapId) { var existing = await LoadDocumentAsync(); existing.Sitemaps.Remove(sitemapId); _session.Save(existing); _signal.DeferredSignalToken(SitemapsDocumentCacheKey); BuildAllSitemapRouteEntries(existing); return; }
public async Task UpdateIndexAsync(LuceneIndexSettings settings) { if (settings.IsReadonly) { throw new ArgumentException("The object is read-only"); } var document = await LoadDocumentAsync(); document.LuceneIndexSettings[settings.IndexName] = settings; Session.Save(document); _signal.DeferredSignalToken(CacheKey); }
private void SignalLayerChanged(ContentItem contentItem) { var layerMetadata = contentItem.As <LayerMetadata>(); if (layerMetadata != null) { _signal.DeferredSignalToken(LayerChangeToken); } }
public async Task UpdateCustomStyleSiteSettingsAsync(ISite site) { // Persists new data. Session.Save(site); // Invalidates the cache after the session is committed. _memoryCache.Remove(CacheKey); _signal.DeferredSignalToken(CacheKey); //Reset ShellHost to apply settings await _orchardHost.ReloadShellContextAsync(_currentShellSettings); }
private void UpdateContentDefinitionRecord() { var contentDefinitionRecord = LoadContentDefinitionRecord(); contentDefinitionRecord.Serial++; _contentDefinitionStore.SaveContentDefinitionAsync(contentDefinitionRecord).GetAwaiter().GetResult(); // Cache invalidation at the end of the scope. _signal.DeferredSignalToken(CacheKey); // If multiple updates in the same scope, types and parts may need to be rebuilt. _scopedTypeDefinitions.Clear(); _scopedPartDefinitions.Clear(); }
public async Task UpdateAsync(LayersDocument layers) { if (layers.IsReadonly) { throw new ArgumentException("The object is read-only"); } var existing = await LoadLayersAsync(); existing.Layers = layers.Layers; _session.Save(existing); _signal.DeferredSignalToken(LayersCacheKey); }
/// <inheritdoc/> public Task UpdateSiteSettingsAsync(ISite site) { if (site.IsReadonly) { throw new ArgumentException("The object is read-only"); } // Persists new data. Session.Save(site); // Invalidates the cache after the session is committed. _signal.DeferredSignalToken(SiteCacheKey); return(Task.CompletedTask); }
public async Task <IActionResult> UpdatePosition(string contentItemId, double position, string zone) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageLayers)) { return(StatusCode(401)); } // Load the latest version first if any var contentItem = await _contentManager.GetAsync(contentItemId, VersionOptions.Latest); if (contentItem == null) { return(StatusCode(404)); } var layerMetadata = contentItem.As <LayerMetadata>(); if (layerMetadata == null) { return(StatusCode(403)); } layerMetadata.Position = position; layerMetadata.Zone = zone; contentItem.Apply(layerMetadata); _session.Save(contentItem); // In case the moved contentItem is the draft for a published contentItem we update it's position too. // We do that because we want the position of published and draft version to be the same. if (contentItem.IsPublished() == false) { var publishedContentItem = await _contentManager.GetAsync(contentItemId, VersionOptions.Published); if (publishedContentItem != null) { layerMetadata = contentItem.As <LayerMetadata>(); if (layerMetadata == null) { return(StatusCode(403)); } layerMetadata.Position = position; layerMetadata.Zone = zone; publishedContentItem.Apply(layerMetadata); _session.Save(publishedContentItem); } } // Clear the cache after the session is committed. _signal.DeferredSignalToken(LayerMetadataHandler.LayerChangeToken); if (Request.Headers != null && Request.Headers["X-Requested-With"] == "XMLHttpRequest") { return(StatusCode(200)); } else { return(RedirectToAction("Index")); } }
private void UpdateRoles(RolesDocument roles) { roles.Serial++; _session.Save(roles); _signal.DeferredSignalToken(Key); }