Example #1
0
        /// <summary>
        /// 修改菜单信息
        /// </summary>
        /// <param name="Id">主键</param>
        /// <param name="dto">修改信息</param>
        /// <returns></returns>
        public async Task <bool> UpdateAsync(Guid Id, MenuUpdateDto dto)
        {
            Id.NotEmpty(nameof(Id));
            dto.NotNull(nameof(MenuUpdateDto));
            var menuModel = await _menuRepository.GetByIdAsync(Id);

            if (menuModel.IsNotNull())
            {
                var menuResult = dto.ToMap(menuModel);
                return(await _menuRepository.UpdateAsync(menuResult));
            }
            throw new BusinessException("当前需修改菜单信息异常,请刷新重试!!!");
        }
Example #2
0
        public async Task <ActionResult> UpdateMenu(int menuId, MenuUpdateDto menu)
        {
            var menuEntity = await _menuRepository.FindAsync(menuId);

            if (menuEntity == null)
            {
                return(NotFound());
            }
            _mapper.Map(menu, menuEntity);

            await _menuRepository.UpdateAsync(menuEntity);

            return(NoContent());
        }
Example #3
0
        public ActionResult <MenuUpdateDto> UpdateMenu(int id, MenuUpdateDto menuUpdateDto)
        {
            var menuModel = _menuRepository.GetMenuById(id);

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

            var menuToUpdate = _mapper.Map(menuUpdateDto, menuModel);

            _menuRepository.UpdateMenu(menuToUpdate);
            _menuRepository.SaveChanges();

            return(NoContent());
        }
Example #4
0
        public ActionResult UpdateMenu(int id, MenuUpdateDto menuUpdateDto)
        {
            var menumeodelfromRepo = _repository.GetMenuById(id);

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

            _mapper.Map(menuUpdateDto, menumeodelfromRepo);

            _repository.updateMenu(menumeodelfromRepo);

            _repository.SaveChanges();

            return(NoContent());
        }
Example #5
0
        public virtual async Task <MenuDto> UpdateAsync(Guid id, MenuUpdateDto input)
        {
            var menu = await MenuRepository.GetAsync(id);

            // 利用布局约定的数据字典来校验必须的路由元数据,元数据的加入是为了适配多端路由
            var layout = await LayoutRepository.GetAsync(menu.LayoutId);

            var data = await DataRepository.GetAsync(layout.DataId);

            foreach (var dataItem in data.Items)
            {
                if (!input.Meta.TryGetValue(dataItem.Name, out object meta))
                {
                    if (!dataItem.AllowBeNull)
                    {
                        throw new BusinessException(PlatformErrorCodes.MenuMissingMetadata)
                              .WithData("Name", dataItem.DisplayName)
                              .WithData("DataName", data.DisplayName);
                    }
                    // 是否需要设定默认值?
                    menu.SetProperty(dataItem.Name, dataItem.DefaultValue);
                }
                else
                {
                    // 与现有的数据做对比
                    var menuMeta = menu.GetProperty(dataItem.Name);
                    if (menuMeta != null && menuMeta.Equals(meta))
                    {
                        continue;
                    }
                    // 需要检查参数是否有效
                    menu.SetProperty(dataItem.Name, DataItemMapping.MapToString(dataItem.ValueType, meta));
                }
            }

            if (!string.Equals(menu.Name, input.Name, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.Name = input.Name;
            }
            if (!string.Equals(menu.DisplayName, input.DisplayName, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.DisplayName = input.DisplayName;
            }
            if (!string.Equals(menu.Description, input.Description, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.Description = input.Description;
            }
            if (!string.Equals(menu.Path, input.Path, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.Path = input.Path;
            }
            if (!string.Equals(menu.Redirect, input.Redirect, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.Redirect = input.Redirect;
            }
            if (!string.Equals(menu.Component, input.Component, StringComparison.InvariantCultureIgnoreCase))
            {
                menu.Component = input.Component;
            }

            menu.IsPublic = input.IsPublic;

            await MenuManager.UpdateAsync(menu);

            await CurrentUnitOfWork.SaveChangesAsync();

            return(ObjectMapper.Map <Menu, MenuDto>(menu));
        }
Example #6
0
 public virtual async Task <MenuDto> UpdateAsync(Guid id, MenuUpdateDto input)
 {
     return(await MenuAppService.UpdateAsync(id, input));
 }