示例#1
0
        public async Task <IActionResult> Edit(string name, string conditionId)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageLayers))
            {
                return(Forbid());
            }

            var layers = await _layerService.GetLayersAsync();

            var layer = layers.Layers.FirstOrDefault(x => String.Equals(x.Name, name));

            if (layer == null)
            {
                return(NotFound());
            }

            var condition = FindCondition(layer.LayerRule, conditionId);

            if (condition == null)
            {
                return(NotFound());
            }

            var model = new LayerRuleEditViewModel
            {
                Name   = name,
                Editor = await _displayManager.BuildEditorAsync(condition, updater : _updateModelAccessor.ModelUpdater, isNew : false)
            };

            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> Edit(LayerRuleEditViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageLayers))
            {
                return(Forbid());
            }

            var layers = await _layerService.LoadLayersAsync();

            var layer = layers.Layers.FirstOrDefault(x => String.Equals(x.Name, model.Name));

            if (layer == null)
            {
                return(NotFound());
            }

            var condition = FindCondition(layer.LayerRule, model.ConditionId);

            if (condition == null)
            {
                return(NotFound());
            }

            var editor = await _displayManager.UpdateEditorAsync(condition, updater : _updateModelAccessor.ModelUpdater, isNew : false);

            if (ModelState.IsValid)
            {
                await _layerService.UpdateAsync(layers);

                await _notifier.SuccessAsync(H["Condition updated successfully."]);

                return(RedirectToAction(nameof(Edit), "Admin", new { name = model.Name }));
            }

            await _notifier.ErrorAsync(H["The condition has validation errors."]);

            model.Editor = editor;

            // If we got this far, something failed, redisplay form
            return(View(model));
        }