コード例 #1
0
        /// <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);
        }
コード例 #2
0
        // [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."]);
            }
        }