Example #1
0
        /// <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);
        }
Example #2
0
        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);
        }
Example #3
0
        public async Task UpdateAsync(LayersDocument layers)
        {
            var existing = await _session.Query <LayersDocument>().FirstOrDefaultAsync();

            existing.Layers = layers.Layers;
            _session.Save(existing);
            _memoryCache.Set(LayersCacheKey, existing);
        }
Example #4
0
 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."]);
     }
 }
Example #5
0
        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);
        }