/// <summary> /// 지정된 부모 메뉴의 자식 메뉴를 생성합니다. /// </summary> /// <param name="parent">부모 메뉴</param> /// <param name="code">새로운 메뉴의 Id</param> /// <param name="menuTemplate">새로운 메뉴의 메뉴 템플릿 정보</param> /// <returns></returns> public Menu CreateMenuOf(Menu parent, string code, MenuTemplate menuTemplate) { if(parent == null) return CreateMenu(menuTemplate, code); code.ShouldNotBeWhiteSpace("code"); Guard.Assert(parent.MenuTemplate.Product == menuTemplate.Product, @"부모 메뉴의 Product 정보와 새로 만들 MenuTemplate의 Product정보가 틀립니다."); if(IsDebugEnabled) log.Debug(@"새로운 Menu 정보를 생성합니다... parent={0}, code={1}, menuTemplate={2}", parent, code, menuTemplate); var menu = new Menu(menuTemplate, code); menu.SetParent(parent); menu.UpdateNodePosition(); return Repository<Menu>.SaveOrUpdate(menu); }