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)); }
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)); }