/// <summary> /// Updates the store with the provided layers document and then updates the cache. /// </summary> public async Task UpdateAsync(LayersDocument layers) { var existing = await LoadLayersAsync(); existing.Layers = layers.Layers; await _documentManager.UpdateAsync(layers); }
public async Task <LayersDocument> GetLayersAsync() { LayersDocument layers; if (!_memoryCache.TryGetValue(LayersCacheKey, out layers)) { layers = await _session.Query <LayersDocument>().FirstOrDefaultAsync(); if (layers == null) { lock (_memoryCache) { if (!_memoryCache.TryGetValue(LayersCacheKey, out layers)) { layers = new LayersDocument(); _session.Save(layers); _memoryCache.Set(LayersCacheKey, layers); } } } else { _memoryCache.Set(LayersCacheKey, layers); } } return(layers); }
public async Task UpdateAsync(LayersDocument layers) { var existing = await _session.Query <LayersDocument>().FirstOrDefaultAsync(); existing.Layers = layers.Layers; _session.Save(existing); _memoryCache.Set(LayersCacheKey, existing); }
private void ValidateViewModel(LayerEditViewModel model, LayersDocument layers, bool isNew) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(LayerEditViewModel.Name), S["The layer name is required."]); } else if (isNew && layers.Layers.Any(x => String.Equals(x.Name, model.Name, StringComparison.OrdinalIgnoreCase))) { ModelState.AddModelError(nameof(LayerEditViewModel.Name), S["The layer name already exists."]); } }
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); }