/// <summary> /// Добавить пункт меню. /// </summary> /// <param name="menuId">Идентификатор меню</param> /// <param name="menuItemAddingDto">Данные добавляемого пункта меню</param> /// <exception cref="MenuNotFoundException"> /// Генерируется в случае, если меню с таким идентификатором не найдено. /// </exception> public void AddMenuItem(int menuId, MenuItemAddingDto menuItemAddingDto) { Menu menu = GetMenuById(menuId); MenuItem menuItem = new AddingDtoToMenuItemMapper().Map(menuItemAddingDto); menu.AddMenuItem(menuItem); _menuRepository.Update(menu); _menuRepository.Save(); }
/// <summary> /// Добавить вложенный пункт меню внутрь другого пункта меню. /// </summary> /// <param name="menuId">Идентификатор меню</param> /// <param name="parentMenuItemId">Идентификатор родительского пункта меню</param> /// <param name="menuItemAddingDto">Данные добавляемого пункта меню</param> /// <exception cref="MenuNotFoundException"> /// Генерируется в случае, если меню с таким идентификатором не найдено. /// </exception> /// <exception cref="MenuItemNotFoundException"> /// Генерируется в случае, если родительский пункт меню не найден. /// </exception> /// <exception cref="ArgumentNullException"> /// Передан объект null в качестве аргумента /// </exception> public void AddMenuItem(int menuId, int parentMenuItemId, MenuItemAddingDto menuItemAddingDto) { if (menuItemAddingDto == null) throw new ArgumentNullException("menuItemAddingDto"); Menu menu = GetMenuById(menuId); MenuItem parentMenuItem = menu.SearchMenuItem(parentMenuItemId); if (parentMenuItem == null) { throw new MenuItemNotFoundException( String.Format("Пункт меню с идентификатором {0} внутри меню {1} не найден!", parentMenuItemId, menuId)); } MenuItem addingMenuItem = new AddingDtoToMenuItemMapper().Map(menuItemAddingDto); parentMenuItem.AddMenuItem(addingMenuItem); _menuRepository.Update(menu); _menuRepository.Save(); }