示例#1
0
    public async Task <IActionResult> Edit(EditMenuRequest model)
    {
        var request = new EditMenuRequest
        {
            Title          = model.Title,
            DisplayOrder   = model.DisplayOrder.GetValueOrDefault(),
            Icon           = model.Icon,
            Url            = model.Url,
            IsOpenInNewTab = model.IsOpenInNewTab
        };

        if (null != model.SubMenus)
        {
            var subMenuRequests = model.SubMenus
                                  .Select(p => new EditSubMenuRequest
            {
                Title          = p.Title,
                Url            = p.Url,
                IsOpenInNewTab = p.IsOpenInNewTab
            }).ToArray();

            request.SubMenus = subMenuRequests;
        }

        await _mediator.Send(new UpdateMenuCommand(model.Id, request));

        return(NoContent());
    }
示例#2
0
        public Task <Response <Guid> > UpdateAsync(EditMenuRequest request)
        {
            return(TryExecuteAsync <Guid>(async() =>
            {
                var menu = await _menuRepository.GetAsync(request.Id);
                if (null == menu)
                {
                    throw new InvalidOperationException($"MenuEntity with Id '{request.Id}' not found.");
                }

                var sUrl = Utils.SterilizeMenuLink(request.Url.Trim());
                Logger.LogInformation($"Sterilized URL from '{request.Url}' to '{sUrl}'");

                menu.Title = request.Title.Trim();
                menu.Url = sUrl;
                menu.DisplayOrder = request.DisplayOrder;
                menu.Icon = request.Icon;
                menu.IsOpenInNewTab = request.IsOpenInNewTab;

                await _menuRepository.UpdateAsync(menu);
                await _moongladeAudit.AddAuditEntry(EventType.Content, AuditEventId.MenuUpdated, $"Menu '{request.Id}' updated.");

                return new SuccessResponse <Guid>(menu.Id);
            }));
        }
示例#3
0
    public async Task <IActionResult> Create(EditMenuRequest model)
    {
        var request = new EditMenuRequest
        {
            DisplayOrder   = model.DisplayOrder.GetValueOrDefault(),
            Icon           = model.Icon,
            Title          = model.Title,
            Url            = model.Url,
            IsOpenInNewTab = model.IsOpenInNewTab
        };

        if (null != model.SubMenus)
        {
            var subMenuRequests = model.SubMenus
                                  .Select(p => new EditSubMenuRequest
            {
                Title          = p.Title,
                Url            = p.Url,
                IsOpenInNewTab = p.IsOpenInNewTab
            }).ToArray();

            request.SubMenus = subMenuRequests;
        }

        var response = await _mediator.Send(new CreateMenuCommand(request));

        return(Ok(response));
    }
示例#4
0
    public async Task <IActionResult> Edit([NotEmpty] Guid id)
    {
        var menu = await _mediator.Send(new GetMenuQuery(id));

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

        var model = new EditMenuRequest
        {
            Id             = menu.Id,
            DisplayOrder   = menu.DisplayOrder,
            Icon           = menu.Icon,
            Title          = menu.Title,
            Url            = menu.Url,
            IsOpenInNewTab = menu.IsOpenInNewTab,
            SubMenus       = menu.SubMenus.Select(p => new EditSubMenuRequest
            {
                Id             = p.Id,
                Title          = p.Title,
                Url            = p.Url,
                IsOpenInNewTab = p.IsOpenInNewTab
            }).ToArray()
        };

        return(Ok(model));
    }
示例#5
0
        public async Task <IActionResult> Edit(MenuEditViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                var request = new EditMenuRequest(model.Id)
                {
                    Title          = model.Title,
                    DisplayOrder   = model.DisplayOrder,
                    Icon           = model.Icon,
                    Url            = model.Url,
                    IsOpenInNewTab = model.IsOpenInNewTab
                };

                var response = await _menuService.UpdateAsync(request);

                return(Json(response));
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Error Editing Menu.");

                ModelState.AddModelError("", e.Message);
                return(ServerError());
            }
        }
示例#6
0
        /// <summary>
        /// 修改菜单
        /// </summary>
        /// <param name="request"></param>
        /// <param name="loginInfo"></param>
        /// <returns></returns>
        public ServiceResult <bool> EditMenu(EditMenuRequest request, TRightsUser loginInfo)
        {
            var result = new ServiceResult <bool>
            {
                ReturnCode = ReturnCodeType.Error
            };

            var menu = _menuDao.GetById(request.Id);

            if (menu != null)
            {
                menu.Name            = request.Name;
                menu.Url             = request.Url;
                menu.Icon            = request.Icon;
                menu.Sort            = request.Sort;
                menu.LastUpdatedBy   = loginInfo.Id;
                menu.LastUpdatedTime = DateTime.Now;
                var rs = _menuDao.Update(menu);
                if (rs == true)
                {
                    result.ReturnCode = ReturnCodeType.Success;
                    result.Content    = true;
                }
            }

            return(result);
        }
示例#7
0
        public async Task <Guid> UpdateAsync(EditMenuRequest request)
        {
            var menu = await _menuRepo.GetAsync(request.Id);

            if (menu is null)
            {
                throw new InvalidOperationException($"MenuEntity with Id '{request.Id}' not found.");
            }

            var sUrl = SterilizeMenuLink(request.Url.Trim());

            _logger.LogInformation($"Sterilized URL from '{request.Url}' to '{sUrl}'");

            menu.Title          = request.Title.Trim();
            menu.Url            = sUrl;
            menu.DisplayOrder   = request.DisplayOrder;
            menu.Icon           = request.Icon;
            menu.IsOpenInNewTab = request.IsOpenInNewTab;

            await _menuRepo.UpdateAsync(menu);

            await _audit.AddAuditEntry(EventType.Content, AuditEventId.MenuUpdated, $"Menu '{request.Id}' updated.");

            return(menu.Id);
        }
示例#8
0
        public ActionResult Edit(EditMenuRequest request)
        {
            var flag = false;
            var msg  = string.Empty;

            var rs = _menuService.EditMenu(request, loginInfo);

            if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true)
            {
                flag = true;
                msg  = "修改成功!";
            }
            else
            {
                msg = "修改失败!";
            }

            return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet));
        }
示例#9
0
        public async Task <IActionResult> Edit(MenuEditViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var request = new EditMenuRequest(model.Id)
            {
                Title          = model.Title,
                DisplayOrder   = model.DisplayOrder,
                Icon           = model.Icon,
                Url            = model.Url,
                IsOpenInNewTab = model.IsOpenInNewTab
            };

            await _menuService.UpdateAsync(request);

            return(Ok());
        }
示例#10
0
        public ActionResult Edit(EditMenuRequest request)
        {
            var flag = false;
            var msg  = string.Empty;

            using (var factory = new ChannelFactory <IRightsMenuService>("*"))
            {
                var client = factory.CreateChannel();
                var rs     = client.EditMenu(request, loginInfo);
                if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true)
                {
                    flag = true;
                    msg  = "修改成功!";
                }
                else
                {
                    msg = "修改失败!";
                }
            }

            return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet));
        }
示例#11
0
        public async Task <IActionResult> Edit(NavMenuEditViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var request = new EditMenuRequest(model.Id)
                    {
                        Title        = model.Title,
                        DisplayOrder = model.DisplayOrder,
                        Icon         = model.Icon,
                        Url          = model.Url
                    };

                    var response = await _menuService.EditMenuAsync(request);

                    if (response.IsSuccess)
                    {
                        return(Json(response));
                    }

                    Logger.LogError($"Edit menu failed: {response.Message}");
                    ModelState.AddModelError("", response.Message);
                    return(BadRequest());
                }

                return(BadRequest());
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Error Editing Menu.");

                ModelState.AddModelError("", e.Message);
                return(ServerError());
            }
        }
示例#12
0
 public UpdateMenuCommand(Guid id, EditMenuRequest payload)
 {
     Id      = id;
     Payload = payload;
 }
示例#13
0
 public CreateMenuCommand(EditMenuRequest payload)
 {
     Payload = payload;
 }