Beispiel #1
0
        public async Task <IResultModel> Add(MenuAddModel model)
        {
            var menu = _mapper.Map <MenuEntity>(model);

            //根据父节点的等级+1设置当前菜单的等级
            if (menu.ParentId != Guid.Empty)
            {
                var parentMenu = await _menuRepository.GetAsync(model.ParentId);

                if (parentMenu == null)
                {
                    return(ResultModel.Failed("父节点不存在"));
                }

                menu.Level = parentMenu.Level + 1;
            }

            if (menu.Type == MenuType.Node)
            {
                menu.Target = MenuTarget.UnKnown;
            }

            if (await _menuRepository.AddAsync(menu))
            {
                await ClearAccountPermissionCache(menu);

                return(ResultModel.Success(menu.Id));
            }

            return(ResultModel.Failed());
        }
Beispiel #2
0
        public async Task <IResultModel> Add(MenuAddModel model)
        {
            if (!string.IsNullOrEmpty(model.RouteName) &&
                await _menuRepository.ExistsAsync(m => m.RouteName == model.RouteName && m.MenuName == model.MenuName && m.IsDel == false))
            {
                return(ResultModel.HasExists);
            }

            var entity = _mapper.Map <MenuEntity>(model);

            if (!string.IsNullOrEmpty(entity.ParentId))
            {
                var parent = await _menuRepository.FirstAsync(m => m.Id == entity.ParentId);

                if (parent != null)
                {
                    entity.Level = parent.Level + 1;
                }
            }

            var result = await _menuRepository.InsertAsync(entity);

            if (result)
            {
                await ClearCache();

                return(ResultModel.Success(entity));
            }

            return(ResultModel.Failed());
        }
Beispiel #3
0
        public async Task <IResultModel> Add(MenuAddModel model)
        {
            var menu = _mapper.Map <MenuEntity>(model);

            if (await _menuRepository.ExistsNameByParentId(menu.Name, menu.Id, menu.ParentId))
            {
                return(ResultModel.Failed($"节点名称“{menu.Name}”已存在"));
            }

            //根据父节点的等级+1设置当前菜单的等级
            if (menu.ParentId != Guid.Empty)
            {
                var parentMenu = await _menuRepository.GetAsync(model.ParentId);

                if (parentMenu == null)
                {
                    return(ResultModel.Failed("父节点不存在"));
                }

                menu.Level = parentMenu.Level + 1;
            }

            if (menu.Type == MenuType.Node)
            {
                menu.Target = MenuTarget.UnKnown;
            }

            if (await _menuRepository.AddAsync(menu))
            {
                return(ResultModel.Success());
            }

            return(ResultModel.Failed());
        }
Beispiel #4
0
        public async Task <IResultModel> Add(MenuAddModel model)
        {
            var menu = _mapper.Map <Menu>(model);

            try
            {
                _uow.BeginTransaction();

                if (await _menuRepository.ExistsNameByParentId(menu.Name, menu.Id, menu.ParentId))
                {
                    _uow.Rollback();
                    return(ResultModel.Failed($"节点名称“{menu.Name}”已存在"));
                }

                //根据父节点的等级+1设置当前菜单的等级
                if (menu.ParentId != Guid.Empty)
                {
                    var parentMenu = await _menuRepository.GetAsync(model.ParentId);

                    if (parentMenu == null)
                    {
                        _uow.Rollback();
                        return(ResultModel.Failed("父节点不存在"));
                    }

                    menu.Level = parentMenu.Level + 1;
                }

                menu.RouteName = menu.RouteName?.ToLower();

                if (menu.Type == MenuType.Node)
                {
                    menu.Target = MenuTarget.UnKnown;
                }

                if (await _menuRepository.AddAsync(menu))
                {
                    _uow.Commit();
                    return(ResultModel.Success());
                }

                _uow.Rollback();
                return(ResultModel.Failed());
            }
            catch
            {
                _uow.Rollback();
                throw;
            }
        }
Beispiel #5
0
        public async Task <IResultModel> Add(MenuAddModel model)
        {
            var menu = _mapper.Map <MenuEntity>(model);

            //根据父节点的等级+1设置当前菜单的等级
            if (menu.ParentId != Guid.Empty)
            {
                var parentMenu = await _menuRepository.GetAsync(model.ParentId);

                if (parentMenu == null)
                {
                    return(ResultModel.Failed("父节点不存在"));
                }

                menu.Level = parentMenu.Level + 1;
            }

            if (menu.Type == MenuType.Node)
            {
                menu.Target = MenuTarget.UnKnown;
            }

            using (var tran = _menuRepository.BeginTransaction())
            {
                if (await _menuRepository.AddAsync(menu, tran))
                {
                    //同步菜单权限
                    if (await SyncPermission(menu, model.Permissions, tran))
                    {
                        //同步按钮
                        if (await SyncButton(menu, model.Buttons, tran))
                        {
                            tran.Commit();

                            await ClearAccountPermissionCache(entity);

                            return(ResultModel.Success());
                        }
                    }
                }
            }

            return(ResultModel.Failed());
        }
Beispiel #6
0
 public async Task <IResultModel> Add(MenuAddModel model)
 {
     return(await _service.Add(model));
 }
 public Task <IResultModel> Add(MenuAddModel model)
 {
     return(_service.Add(model));
 }