コード例 #1
0
        public List <Menu> ChildMenus(IConnectionHandler connectionHandler, List <Menu> list, Guid?userId, int?groupId = null, bool?display = null)
        {
            if (!list.Any())
            {
                return(null);
            }
            var childMenus = new List <Menu>();
            var parents    = list.Select(d => d.Id).ToList();

            if (userId == null)
            {
                var predicateBuilder = new PredicateBuilder <Menu>();
                if (groupId.HasValue)
                {
                    predicateBuilder.And(x => x.MenuGroupId == groupId);
                }
                predicateBuilder.And(x => x.Enabled);
                predicateBuilder.And(x => x.ParentId.Value.In(list.Select(d => d.Id)));
                if (display.HasValue)
                {
                    predicateBuilder.And(x => x.Display == display);
                }
                childMenus = new MenuBO().OrderBy(connectionHandler, x => x.Order, predicateBuilder.GetExpression(), true);
            }
            else
            {
                childMenus = new MenuBO().GetChildMenus(connectionHandler, parents, (Guid)userId, display);
            }
            return(childMenus);
        }
コード例 #2
0
 public bool Insert(IConnectionHandler connectionHandler, MenuGroup menuGroup, List <Guid> menulistId)
 {
     if (!base.Insert(connectionHandler, menuGroup))
     {
         throw new Exception("خطا درذخیره دسته بندی منو وجود دارد");
     }
     foreach (var guid in menulistId)
     {
         var menu = new MenuBO().Get(connectionHandler, guid);
         if (menu == null)
         {
             continue;
         }
         menu.MenuGroupId = menuGroup.Id;
         if (!new MenuBO().Update(connectionHandler, menu))
         {
             throw new Exception("خطا درذخیره دسته بندی منو وجود دارد");
         }
     }
     return(true);
 }
コード例 #3
0
        public bool Update(IConnectionHandler connectionHandler, MenuGroup menuGroup, List <Guid> menulistId)
        {
            if (!base.Update(connectionHandler, menuGroup))
            {
                throw new Exception("خطا درذخیره دسته بندی منو وجود دارد");
            }
            var menuBo     = new MenuBO();
            var enumerable =
                new OperationMenuBO().GetOprationMenu(connectionHandler, menuGroup.OperationId, menuGroup.Id);

            foreach (var guid in menulistId)
            {
                var menu = menuBo.Get(connectionHandler, guid);
                if (menu == null || menu.MenuGroupId == menuGroup.Id)
                {
                    continue;
                }
                menu.MenuGroupId = menuGroup.Id;
                if (!menuBo.Update(connectionHandler, menu))
                {
                    throw new Exception("خطا درذخیره دسته بندی منو وجود دارد");
                }
            }
            foreach (var menu in enumerable)
            {
                if (menulistId.Any(x => x == menu.Id))
                {
                    continue;
                }
                menu.MenuGroupId = null;
                if (!menuBo.Update(connectionHandler, menu))
                {
                    throw new Exception("خطا درذخیره دسته بندی منو وجود دارد");
                }
            }
            return(true);
        }