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); }
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); }
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); }