Beispiel #1
0
        public async Task <IActionResult> Edit(AdminMenuEditViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageAdminMenu))
            {
                return(Unauthorized());
            }

            var adminMenuList = await _adminMenuService.LoadMainMenuListAsync();

            var adminMenu = _adminMenuService.GetMainMenuById(adminMenuList, model.Id);

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

            if (ModelState.IsValid)
            {
                adminMenu.Name = model.Name;

                await _adminMenuService.SaveAsync(adminMenu);

                _notifier.Success(H["Main Admin menu updated successfully"]);

                return(RedirectToAction(nameof(List)));
            }

            return(View(model));
        }
        public async Task <IActionResult> Create(AdminNodeEditViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageAdminMenu))
            {
                return(Unauthorized());
            }

            var adminMenuList = await _mainMenuService.LoadMainMenuListAsync();

            var adminMenu = _mainMenuService.GetMainMenuById(adminMenuList, model.AdminMenuId);

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

            var treeNode = _factories.FirstOrDefault(x => x.Name == model.AdminNodeType)?.Create();

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

            dynamic editor = await _displayManager.UpdateEditorAsync(treeNode, updater : this, isNew : true);

            editor.TreeNode = treeNode;

            if (ModelState.IsValid)
            {
                treeNode.UniqueId = model.AdminNodeId;
                adminMenu.MenuItems.Add(treeNode);
                await _mainMenuService.SaveAsync(adminMenu);

                _notifier.Success(H["Admin node added successfully"]);
                return(RedirectToAction("List", new { id = model.AdminMenuId }));
            }

            model.Editor = editor;

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