예제 #1
0
 ShortMenuItem Build(MenuItemContract source)
 {
     if (source is CompositeMenuItemContract)
     {
         var shortItem = new ShortMenuItem
         {
             Id        = source.MenuId,
             Children  = new List <ShortMenuItem>(),
             IsChecked = source.IsChecked,
             Name      = source.Name,
             Title     = source.Name + "(" + source.Action + ")",
             ParentId  = source.ParentMenuId,
         };
         foreach (var item in source.Items)
         {
             shortItem.Children.Add(Build(item));
         }
         if (shortItem.Children != null && shortItem.Children.All(p => p.IsChecked))
         {
             shortItem.IsChecked = true;
         }
         return(shortItem);
     }
     else
     {
         return(new ShortMenuItem
         {
             Id = source.MenuId,
             IsChecked = source.IsChecked,
             Name = source.Name,
             Title = source.Name + "(" + source.Action + ")",
             ParentId = source.ParentMenuId,
         });
     }
 }
예제 #2
0
        private MenuItemContract Walk(IList <MenuItemContract> source, MenuItemContract current)
        {
            var children = source.Where(p => p.ParentMenuId == current.MenuId).ToList();

            if (children.Count > 0)
            {
                var item = new CompositeMenuItemContract()
                {
                    RoleId       = current.RoleId,
                    RoleName     = current.RoleName,
                    Name         = current.Name,
                    Action       = current.Action,
                    MenuId       = current.MenuId,
                    ParentMenuId = current.ParentMenuId,
                    OrderBy      = current.OrderBy,
                    Category     = current.Category,
                    Attributes   = current.Attributes
                };
                foreach (var child in children)
                {
                    item.Items.Add(Walk(source, child));
                }
                item.Items.Sort();
                return(item);
            }
            return(current);
        }
예제 #3
0
 private ActionResult EditMenu(MenuItemContract item)
 {
     if (item.IsValid())
     {
         var rs = _roleFunctionService.Update(item);
         if (rs == ResultStatus.Success)
         {
             return(Json(new
             {
                 result = true,
                 msg = "菜单" + item.Name + "保存成功!"
             }));
         }
         return(Json(new
         {
             result = false,
             msg = (rs == ResultStatus.Duplicate ? "记录已经存在" : "保存失败")
         }));
     }
     return(Json(new
     {
         result = false,
         msg = item.ErrorMessage
     }));
 }
예제 #4
0
        public ActionResult Edite(MenuItemContract item)
        {
            string aId = Request.Params["MAttributes"];

            if (string.IsNullOrEmpty(aId))
            {
                return(Json(new
                {
                    result = false,
                    msg = "唯一标识不能为空!"
                }));
            }

            item.Attributes = new MenuItemAttributes {
                Id = aId
            };
            //新增菜单
            if (item.MenuId == Guid.Empty)
            {
                return(CreateMenu(item));
            }
            //编辑菜单
            else
            {
                return(EditMenu(item));
            }
        }
예제 #5
0
 private ActionResult CreateMenu(MenuItemContract item)
 {
     item.MenuId = Guid.NewGuid();
     if (item.IsValid())
     {
         var rs = _roleFunctionService.Create(item);
         if (rs == ResultStatus.Success)
         {
             return(Json(new
             {
                 result = true,
                 msg = "菜单" + item.Name + "创建成功!"
             }));
         }
         return(Json(new
         {
             result = false,
             msg = (rs == ResultStatus.Duplicate ? "记录已经存在" : "添加失败")
         }));
     }
     return(Json(new
     {
         result = false,
         msg = item.ErrorMessage
     }));
 }
예제 #6
0
 public ResultStatus Update(MenuItemContract item)
 {
     if (item.IsValid())
     {
         _functionsRepository.Update(p => p.FUNCTIONS_ID == item.MenuId, item.ToEntity());
         return(ResultStatus.Success);
     }
     return(ResultStatus.Failed);
 }
예제 #7
0
 public ResultStatus Create(MenuItemContract item)
 {
     if (item.IsValid())
     {
         var count = _functionsRepository.Count(p => p.FUNCTIONS_ID == item.MenuId);
         if (count == 0)
         {
             var entity = item.ToEntity();
             _functionsRepository.Add(entity);
             return(ResultStatus.Success);
         }
         return(ResultStatus.Duplicate);
     }
     return(ResultStatus.Failed);
 }
예제 #8
0
 public ResultStatus Create(MenuItemContract item)
 {
     if (item.IsValid())
     {
         var count = _functionsRepository.Count(p => p.FUNCTIONS_ID == item.MenuId);
         if (count == 0)
         {
             var entity = item.ToEntity();
             _functionsRepository.Add(entity);
             return ResultStatus.Success;
         }
         return ResultStatus.Duplicate;
     }
     return ResultStatus.Failed;
 }
예제 #9
0
 public static BASE_FUNCTIONS ToEntity(this MenuItemContract source)
 {
     if (source == null)
     {
         throw new InvalidOperationException("source is null");
     }
     return(new BASE_FUNCTIONS
     {
         FUNCTIONS_NAME = source.Name,
         FUNCTIONS_ACTION = source.Action,
         FUNCTIONS_ID = source.MenuId,
         FUNCTIONS_PARENTID = source.ParentMenuId,
         FUNCTIONS_ORDERBY = source.OrderBy,
         FUNCTIONS_CATEGORY = source.Category,
         FUNCTIONS_ATTRIBUTES = JsonFormaterUtils.Serialize(source.Attributes)
     });
 }
예제 #10
0
        public ActionResult Edite(MenuItemContract item)
        {
            string aId = Request.Params["MAttributes"];
            if (string.IsNullOrEmpty(aId))
            {
                return Json(new
                {
                    result = false,
                    msg = "唯一标识不能为空!"
                });
            }

            item.Attributes = new MenuItemAttributes { Id = aId };
            //新增菜单
            if (item.MenuId == Guid.Empty)
            {
                return CreateMenu(item);
            }
            //编辑菜单
            else
            {
                return EditMenu(item);
            }
        }
예제 #11
0
 private MenuItemContract Walk(IList<MenuItemContract> source, MenuItemContract current)
 {
     var children = source.Where(p => p.ParentMenuId == current.MenuId).ToList();
     if (children.Count > 0)
     {
         var item = new CompositeMenuItemContract()
         {
             RoleId = current.RoleId,
             RoleName = current.RoleName,
             Name = current.Name,
             Action = current.Action,
             MenuId = current.MenuId,
             ParentMenuId = current.ParentMenuId,
             OrderBy = current.OrderBy,
             Category = current.Category,
             Attributes = current.Attributes
         };
         foreach (var child in children)
         {
             item.Items.Add(Walk(source, child));
         }
         item.Items.Sort();
         return item;
     }
     return current;
 }
예제 #12
0
 ShortMenuItem Build(MenuItemContract source)
 {
     if (source is CompositeMenuItemContract)
     {
         var shortItem = new ShortMenuItem
         {
             Id = source.MenuId,
             Children = new List<ShortMenuItem>(),
             IsChecked = source.IsChecked,
             Name = source.Name,
             Title = source.Name + "(" + source.Action + ")",
             ParentId = source.ParentMenuId,
         };
         foreach (var item in source.Items)
         {
             shortItem.Children.Add(Build(item));
         }
         if (shortItem.Children != null && shortItem.Children.All(p => p.IsChecked))
         {
             shortItem.IsChecked = true;
         }
         return shortItem;
     }
     else
     {
         return new ShortMenuItem
         {
             Id = source.MenuId,
             IsChecked = source.IsChecked,
             Name = source.Name,
             Title = source.Name + "(" + source.Action + ")",
             ParentId = source.ParentMenuId,
         };
     }
 }
예제 #13
0
 public ResultStatus Update(MenuItemContract item)
 {
     if (item.IsValid())
     {
         _functionsRepository.Update(p => p.FUNCTIONS_ID == item.MenuId, item.ToEntity());
         return ResultStatus.Success;
     }
     return ResultStatus.Failed;
 }
예제 #14
0
 private ActionResult CreateMenu(MenuItemContract item)
 {
     item.MenuId = Guid.NewGuid();
     if (item.IsValid())
     {
         var rs = _roleFunctionService.Create(item);
         if (rs == ResultStatus.Success)
         {
             return Json(new
             {
                 result = true,
                 msg = "菜单" + item.Name + "创建成功!"
             });
         }
         return Json(new
         {
             result = false,
             msg = (rs == ResultStatus.Duplicate ? "记录已经存在" : "添加失败")
         });
     }
     return Json(new
     {
         result = false,
         msg = item.ErrorMessage
     });
 }
예제 #15
0
 private ActionResult EditMenu(MenuItemContract item)
 {
     if (item.IsValid())
     {
         var rs = _roleFunctionService.Update(item);
         if (rs == ResultStatus.Success)
         {
             return Json(new
             {
                 result = true,
                 msg = "菜单" + item.Name + "保存成功!"
             });
         }
         return Json(new
         {
             result = false,
             msg = (rs == ResultStatus.Duplicate ? "记录已经存在" : "保存失败")
         });
     }
     return Json(new
     {
         result = false,
         msg = item.ErrorMessage
     });
 }