/// <summary> /// Updates the store with the provided layers document and then updates the cache. /// </summary> public async Task UpdateAsync(DynamicResourcesDocument layers) { var existing = await LoadDynamicResourcesAsync(); existing.DynamicResources = layers.DynamicResources; await _documentManager.UpdateAsync(layers); }
// [HttpPost] // public async Task<IActionResult> UpdatePosition(string contentItemId, double position, string zone) // { // if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDynamicResources)) // { // 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); // } // } // // // The state will be updated once the ambient session is committed. // await _layerStateManager.UpdateAsync(new LayerState()); // // if (Request.Headers != null && Request.Headers["X-Requested-With"] == "XMLHttpRequest") // { // return StatusCode(200); // } // else // { // return RedirectToAction("Index"); // } // } private void ValidateViewModel(DynamicResourceEditViewModel model, DynamicResourcesDocument layers, bool isNew) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(DynamicResourceEditViewModel.Name), S["The dynamic resource name is required."]); } else if (isNew && layers.DynamicResources.Any(x => String.Equals(x.Name, model.Name, StringComparison.OrdinalIgnoreCase))) { ModelState.AddModelError(nameof(DynamicResourceEditViewModel.Name), S["The dynamic resource name already exists."]); } if (String.IsNullOrWhiteSpace(model.Rule)) { ModelState.AddModelError(nameof(DynamicResourceEditViewModel.Rule), S["The rule is required."]); } }